问题标签 [html5mode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
465 浏览

javascript - 添加 office.js 在 url 中添加 #,然后将其删除

我有一个平均堆栈网站。最初,views/index.html(have <ui-view></ui-view>) 是所有页面的入口点。它使用angular-ui-routerhtml5mode。因此,https://localhost:3000/XXXX在浏览器中将保持不变(而不是添加#)并根据路由器显示相应的内容。

然后,我希望服务器也提供 Office 加载项。我将需要views/addin.html该 containsoffice.js和另一个路由器,以便该站点提供一组 urls https://localhost:3000/addin/XXXX,我不介意它是否html5mode存在(一个 url 可以包含#某处)。

所以这里是对应的routes/index.js

这是views/addin.html

什么时候office.js评论如上,https://localhost:3000/addin/new并且https://localhost:3000/addin/home在浏览器中运行良好。但是,当office.js取消注释时,会出现一个奇怪的行为:https://localhost:3000/addin/new在浏览器中输入会变成https://localhost:3000/#/addin/new,然后又变成https://localhost:3000/addin/new. 我们会看到addin content new page出现一次然后消失。

取消注释后,如果我们使用office.js加载清单文件<SourceLocation DefaultValue="https://localhost:3000/addin/new"/>,我们也会在任务窗格addin content new page中看到出现一次然后消失,然后Add-in Error Something went wrong and we couldn't start this add-in. Please try again later or contact your system administrator.

没有html5mode这里,.../addin/new或者.../addin/home在浏览器中只会显示addin content;加载项可以加载,也只能加载addin content

我的目标是制作一个指向.../addin/new.../addin/home工作的加载项。office.js必须在某处加载。我不介意它是否是html5mode(即,url 有#),但无论哪种方式的行为都是奇怪的或不令人满意的。有谁知道如何修复它或有解决方法?

0 投票
1 回答
55 浏览

javascript - 路由不适用于 HTML5-History-API

在平均堆栈 Web 应用程序中,我使用html5mode并具有以下代码index.html

我已经定义了以下 angular-ui-router:

然后,我去https://localhost:3000/addin/test,点击one将我带到https://localhost:3000/addin/test#%2Faddin%2Fhome,而我想去https://localhost:3000/addin/home

如果我没有office.jsand history.js,点击one确实会引导我到https://localhost:3000/addin/home.

有谁知道如何去https://localhost:3000/addin/home同时保持office.jshistory.js

0 投票
1 回答
153 浏览

javascript - AngularJS $routeProvider 没有正确路由

所以我是 Angular 的新手,并试图弄清楚多条路由如何导致相同的 view/templateUrl 和控制器。这是我写的:

问题:目前,如果我转到“localhost:9000/”,它会显示正确的版本,但如果我转到“localhost:9000/rika”,它会给我“无法获取 /rika”。

调试:我已将问题范围缩小到 html5Mode。我正在尝试摆脱 #! Angular 会自动添加到 URL 中,但是当我这样做时,会弹出错误。

感谢任何人的投入!

0 投票
1 回答
3968 浏览

angularjs - 将所有 AWS S3 http 请求重定向到 AngularJS HTML5Mode 的 index.html

如何将所有请求重定向到我的静态 AWS S3 网站到 index.html,以便我可以使用 AngularJS 的 HTML5 模式?

我最近了解到(令我欣喜若狂)可以通过使用HTML5 Mode#来使用 AngularJS 而不在 URL 中。但是,我从这个答案中知道这需要在服务器上进行一些设置,因为所有请求都必须重定向到正确的 html 文件(在本例中为 )才能正常工作。index.html

我为我的网站使用 AWS S3 的静态网站托管。我尝试将此添加到我的重定向规则中:

但我遇到了太多重定向的问题。

有没有办法通过静态网站托管在 AWS S3 中进行必要的重定向?

0 投票
1 回答
158 浏览

javascript - 刷新页面后如何防止重新加载整个ng-admin

我遇到了刷新页面的问题。示例:基本应用程序打开并且 url 是localhost:8000/dashboard,然后我从菜单或其他任何地方转到用户选项卡,并且 url 是localhost:8000/users/list。如果我在用户上刷新页面,那么它将再次进入仪表板重新加载整个页面。
后端正在正确处理它,当我创建自定义状态并且没有将“ng-admin”指定为父级时,它会停留在刚刚刷新的位置,但是当我将父级添加到状态时,它会再次重新加载整个应用程序。还启用了 html5mode

实体添加为 ng-admin 文档指定:

下一个代码块

从仪表板转到用户时,它会提供输出:

并在刷新

任何想法表示赞赏。

0 投票
0 回答
70 浏览

url - Passportjs 重定向在 URL 中添加主题标签

我的平均堆栈网站上有一个登录页面。该网站使用html5mode,并有<base href="/1/" />。登录使用Passport.js,例如:

对于 Twitter、GitHub 和 Linkedin,它都重定向到https://localhost:3000/1/dashboard. 但是,Google 重定向到https://localhost:3000/1/dashboard#,Facebook 重定向到https://localhost:3000/1/dashboard#_=_.

有谁知道发生了什么?

0 投票
0 回答
86 浏览

javascript - Angular html5Mode + ng-include 中断导航

我正在尝试在启用$locationProvider.html5Mode的情况下使用角度,并且它工作正常,除非我在页面中的某处 使用ng-include 。

在 Chrome、Safari 和 Firefox 上测试

你可以在这里找到问题的最小游乐场: codepen bug demo

有什么线索吗?

0 投票
1 回答
37 浏览

angularjs - 打开带有片段的链接

以前,我html5mode在我的平均堆栈网站中使用过,现在由于某些原因我想禁用它,所以我$locationProvider.html5Mode(true)在我的代码中注释并仍然保留<base href="/1/" />index.html.

结果,https://localhost:3000/1/#/home在浏览器中工作。

但是,单击由以下 html 定义的按钮会导致https://localhost:3000/1/edit/,而不是https://localhost:3000/1/#/edit/

有谁知道如何修改 html 以使其打开https://localhost:3000/1/#/edit/

0 投票
1 回答
606 浏览

javascript - 在 angularjs 中启用 html5 模式时会发生什么?

当您启用 html5 模式时实际发生了什么?这可能会回到单页应用程序中路由是如何发生的这一点

我之前的看法(可能是错误的):查看 angularjs 应用程序中的脏 url,我一直认为它是 url 片段,不同的视图绑定到不同的片段。所以简而言之,我们已经拥有所有页面,并且正在为特定 url 显示特定片段。

现在,为了删除散列,您必须将 html5mode 设置为 true,并且您必须告诉服务器为除您的 apis 之外的每个请求返回索引页面。有点像

每次 url 更改时,请求不应该转到服务器并重新加载页面吗?

html5mode 对浏览器有什么作用?在像 react 和 angular(2 or greater) 这样的较新框架中,您甚至不必启用 html5mode(除非在 angular 2 中,您必须告诉您想要什么样的 url)。

这是什么法术?

0 投票
1 回答
135 浏览

angularjs - AngularJS关于带有html5mode页面刷新错误的页面

我正在使用 w3schools 路由示例来制作一个简单的网站。我的项目文件夹是wamp/www/angular/7base href="/angular/7/". 但是当我在angular/7/red页面刷新时刷新页面时显示未找到。请建议或纠正我的错误,以下是代码。

页面是 index.html、red.html、green.html、blue.html、main.html

.ht 访问代码