问题标签 [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 投票
0 回答
35 浏览

javascript - 在角度的 html5mode url 中,如果我在 url 中手动键入 hashbang(#!),那么它会进入无限循环

当我输入 #! 手动在我的 html5mode url 中,它进入一个无限的摘要循环循环。我希望它重定向到 html5mode url,但是它进入了一个重定向循环,并且 url 变成了类似于 :: - http://localhost:8000/profile/Hotel-Avasa-25196/#!%23%2F!% 2F%23%2F!%2F%23%2F!%2F%23%2F!%2F%23%2F3 .....

我已将基本 href 设置为 ::-

在 JS 中,我写了 ::-

请帮忙

0 投票
3 回答
107 浏览

angularjs - 带有html5mode的angularjs 1.3.16路由,url正在更新但内容未更新

我们使用 AngularJS 版本 1.3.16 和 nodeJS 作为后端,ng-route 用于角度路由。工作代码由 #! 作为节点和角度的 URL 分隔符。

示例 URL:/store/1234/#!/department/produce /store/1234/#!/department/produce/category/fruits

NodeJS 路由代码:

角度路由代码:

为了使 URL 的 SEO 友好和可抓取,我们必须从 URL 中删除 hashbang。因此,当我们尝试启用 html5 模式时,就会出现问题。启用该模式后,角度路由不起作用。

0 投票
1 回答
385 浏览

angularjs - 如何使 nginx 与 html5mode 和图像一起工作

我一直在谷歌搜索如何使用 nginx 为 Angular 应用程序启用 html5。我发现的大多数帖子都推荐使用

try_files $uri $uri/ /index.html =404;

我一直在运行一些测试,并且导航似乎一切正常。

除非我插入具有有效路径的图像,它可以正常工作,但如果我插入具有无效路径的图像,它会返回 200 而不是 404。或者如果我尝试。

try_files $uri $uri/ /index.html=404;

当插入具有无效路径的图像时,它返回 500 而不是 404。

如何仅为路由启用 html5 模式,而不影响图像?

0 投票
1 回答
97 浏览

angularjs - Google bot 无法在 html5 模式下获取 AngularJS 网站

我的网站在 html5 模式下使用 AngularJS 1.4.8,而不是在 URL 中使用哈希,谷歌没有正确索引。当我在谷歌控制台中获取和呈现子页面时,它只呈现主页并且显然将它们视为重复页面。googlebot 似乎没有执行 Javascript,尽管我真的不知道如何在 google 控制台上检查它。另一方面,它接受指向它看不到的子页面的单个 URL。任何想法如何调试此类问题?

0 投票
1 回答
478 浏览

angularjs - Angularjs ng-route,如何避免在html5模式下重新加载整个页面?

如果我使用 hashbang 模式,则没有问题,并且路由之间的转换会很平滑,但是如果我将路由模式更改为 Html5 模式,则路由之间的转换不会像 hashbang 模式那样平滑,并且我们会在其他部分看到某种闪烁页眉,面板,页脚等页面是因为重新加载整个页面。

使用 html5 模式,更改 url 后整个页面将重新加载,甚至页眉和页脚,我怎样才能只替换内容并保持页面的其他部分完好无损?

0 投票
0 回答
86 浏览

javascript - domain.com/#/ 的 html5Mode 路径导致无限摘要错误

我们正在更新到 html5Mode。似乎一切都是固定的。所有旧链接都可以正常工作,这很好,但如果用户尝试以/#/结尾的方式访问普通域,则会触发无限摘要。有没有人见过这个?是否有我可以应用的设置将强制 angular 重新渲染到较新的链接而不会导致错误?

我已将基本标签添加到头部,并配置了我们的开发、QA 和生产服务器来提供静态文件和所有其他链接来提供索引。

作品:domain.com/# 重定向到:domain.com

作品: domain.com/#/path 重定向到 domain.com/path

也适用于 domain.com/#/ (最终,无论如何,但直到产生一些无限的摘要错误之后)

0 投票
2 回答
1305 浏览

angularjs - AngularJS:UI-Router 解决路由哈希爆炸不起作用

我目前正在使用 Angular 1.6.4 版。

为了解决hashbang我遇到的问题,我所有的 URL 都是这种格式:

http://localhost:8885/#/hotels/holiday-inn

app.js包括路由器(使用ui-router):

ui-view的位于Index.cshtml(我以前拥有所有东西,_Layout.cshtml但将所有东西都移到了Index.cshtml):

现在我有一个不同的问题。如果我访问http://localhost:8885/hotel/holiday-inn,我会得到一个404.

为什么会这样?

其他故障排除:

如果我访问http://localhost:8885/#/hotel/,它会显示index.html而不是views/hotel.html将地址更改为http://localhost:8885/#%2Fhotel%2F. (我知道这是otherwise路由中的工作,但为什么它与一个以 hashbang 开头的 URL 一起工作?)

我一直在四处打听并在网上寻找,人们建议其余的工作是通过 C#MapRoute或服务器端代码完成的。

我将如何通过任一选项执行此操作?如果我要执行此服务器端,我如何通过 ASP.Net Core 和 Visual Studio 执行此操作?

这是我目前的MapRoute

另一个编辑:基于评论的建议和https://github.com/angular-ui/ui-router/wiki/Frequently-Asked-Questions#how-to-configure-your-server-to-work-with-html5mode,我尝试将此代码添加到我的 web.config 以进行服务器重写

但是现在,绝对一切都只是重定向到根/主页:localhost:8885/.

有什么帮助吗?

0 投票
1 回答
821 浏览

angular - 如何使用 docker 容器以 HTML5 模式部署 angular2 应用程序

如何使用 docker 容器部署 angular2 应用程序,

目前我正在使用带有 express 的 Node js 来提供我的应用程序内容,

index.js

我的基本网址

我的 Docker 文件

建造

构建

docker build -t testapp:v1 。

这种方法非常有效。但我想知道,有没有更好的方法以 HTML5 模式运行 Angular 2 应用程序?

0 投票
3 回答
458 浏览

javascript - 添加 office.js 禁用 html5mode

我有一个平均堆栈网站,可以html5mode通过$locationProvider.html5Mode(true). 如下index.html所示:

因为html5mode,我们可以在浏览器中加载,例如。https://localhost:3000/home,这将保持不变;没有html5mode,那个 url 就会变成https://localhost:3000/#/home.

现在我希望服务器(除了网站)还提供 Office 加载项。我需要能够<SourceLocation DefaultValue="https://localhost:3000/addin" />在加载项清单文件中执行此操作。为此,我需要 添加<script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js"></script>.index.html

但是,我意识到添加网站后,<script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js"></script>在浏览器index.html中加载https://localhost:3000/home变为https://localhost:3000/#/home,这意味着添加office.js禁用html5mode

有谁知道怎么回事?有人有解决方法吗?

0 投票
1 回答
40 浏览

javascript - 一台服务器可以提供 2 个 angularjs 模块/路由吗?

(我重新编辑了最初的问题以更好地解释上下文。)

angular-ui-router我有一个用and构建的平均堆栈网站html5moderoutes/index.js包含以下代码,它是views/index.html所有<ui-view></ui-view>页面的入口点。结果, https://localhost:3000/XXXX在浏览器中将保持不变(而不是添加#)并根据路由器显示相应的内容。

现在,由于这个问题,我想要views/addin.html包含office.js另一个路由器,以便该站点提供一组 url https://localhost:3000/addin/XXXX,我不介意它是否html5mode存在(一个 url 可以包含#某处)。为此,我为addinin添加了一个块routes/index.js

这是views/addin.html

但是,加载https://localhost:3000/addin/newhttps://localhost:3000/addin/home仅显示addin content而未显示new pagehome page在控制台中;它也没有引发任何错误。

谁能告诉我缺少什么?一台服务器可以提供 2 个 angularjs 模块或路由吗?