问题标签 [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.
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 中,我写了 ::-
请帮忙
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 模式时,就会出现问题。启用该模式后,角度路由不起作用。
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 模式,而不影响图像?
angularjs - Google bot 无法在 html5 模式下获取 AngularJS 网站
我的网站在 html5 模式下使用 AngularJS 1.4.8,而不是在 URL 中使用哈希,谷歌没有正确索引。当我在谷歌控制台中获取和呈现子页面时,它只呈现主页并且显然将它们视为重复页面。googlebot 似乎没有执行 Javascript,尽管我真的不知道如何在 google 控制台上检查它。另一方面,它接受指向它看不到的子页面的单个 URL。任何想法如何调试此类问题?
angularjs - Angularjs ng-route,如何避免在html5模式下重新加载整个页面?
如果我使用 hashbang 模式,则没有问题,并且路由之间的转换会很平滑,但是如果我将路由模式更改为 Html5 模式,则路由之间的转换不会像 hashbang 模式那样平滑,并且我们会在其他部分看到某种闪烁页眉,面板,页脚等页面是因为重新加载整个页面。
使用 html5 模式,更改 url 后整个页面将重新加载,甚至页眉和页脚,我怎样才能只替换内容并保持页面的其他部分完好无损?
javascript - domain.com/#/ 的 html5Mode 路径导致无限摘要错误
我们正在更新到 html5Mode。似乎一切都是固定的。所有旧链接都可以正常工作,这很好,但如果用户尝试以/#/
结尾的方式访问普通域,则会触发无限摘要。有没有人见过这个?是否有我可以应用的设置将强制 angular 重新渲染到较新的链接而不会导致错误?
我已将基本标签添加到头部,并配置了我们的开发、QA 和生产服务器来提供静态文件和所有其他链接来提供索引。
作品:domain.com/# 重定向到:domain.com
作品: domain.com/#/path 重定向到 domain.com/path
也适用于 domain.com/#/ (最终,无论如何,但直到产生一些无限的摘要错误之后)
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/
.
有什么帮助吗?
angular - 如何使用 docker 容器以 HTML5 模式部署 angular2 应用程序
如何使用 docker 容器部署 angular2 应用程序,
目前我正在使用带有 express 的 Node js 来提供我的应用程序内容,
index.js
我的基本网址
我的 Docker 文件
建造
构建
docker build -t testapp:v1 。
这种方法非常有效。但我想知道,有没有更好的方法以 HTML5 模式运行 Angular 2 应用程序?
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
。
有谁知道怎么回事?有人有解决方法吗?
javascript - 一台服务器可以提供 2 个 angularjs 模块/路由吗?
(我重新编辑了最初的问题以更好地解释上下文。)
angular-ui-router
我有一个用and构建的平均堆栈网站html5mode
。routes/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 可以包含#
某处)。为此,我为addin
in添加了一个块routes/index.js
:
这是views/addin.html
:
但是,加载https://localhost:3000/addin/new
或https://localhost:3000/addin/home
仅显示addin content
而未显示new page
或home page
在控制台中;它也没有引发任何错误。
谁能告诉我缺少什么?一台服务器可以提供 2 个 angularjs 模块或路由吗?