问题标签 [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 回答
44 浏览

javascript - Express.js 和 Angular.js html5mode(在 url 中避免 #)

我一直在努力避免在带有 ExpressJS 服务器端的 Angular 应用程序中使用 # 。我研究了如何启用 html5mode 并且效果很好。但是,每当有另一个“获取”请求从另一个 url(例如 /api/services)检索数据时,它似乎就以某种方式损坏并且无法正确地向页面提供数据。

这是我在快递结束时所做的。

我不是 100% 确定,但我猜是 '/*' 会导致服务器在读取 api url 时出现问题。我想知道你们中是否有人有这个问题的经验和解决这个问题的解决方案。

感谢您的时间。

0 投票
1 回答
635 浏览

angularjs - ExpressJS下具有HTML5 url模式的AngularJS SEO

到目前为止,我一直在使用 prerender.io 使我的 angularjs 网站对 seo 友好。当涉及到带有 hashbangs 的 url (website.com/#!) 时,我工作得很好。

目前,我正在让我的网站进入 html5mode,它在 url 上不包含 hashbangs,并且看起来更漂亮。但是,即使我去了 html5 url,prerender.io 也无法正常工作。

另外,我想出了一篇谷歌文章,声称他们的新技术允许引擎自动渲染 Javascript 框架网站(https://webmasters.googleblog.com/2015/10/deprecating-our-ajax-crawling-scheme.html)。但是,当我在 Google Search Console 中使用“Fetch as Google”工具时。它的渲染效果很差,我的标题和元描述吐出 angularjs 语法({{seo.tile}} 或 {{seo.desc}}),它们没有被渲染。

我很迷茫,我应该从哪里开始并解决我遇到的问题。我试图摆脱 prerender.io 因为我认为我们不再需要它了。

很抱歉我的帖子和问题组织得不好。让我试着澄清和联系下面的问题。

1) 我们还需要向 Google 机器人介绍 angularjs 吗?

2) AngularJS+ExpressJS SEO 最稳定和最佳实践是什么?我不想为此尝试不稳定且容易崩溃的方法。

非常感谢您的宝贵时间。

0 投票
1 回答
1934 浏览

angularjs - 如何从 url angular 应用程序中删除哈希?

这可能是重复的问题。但我尝试了很多解决方案,没有答案对我有用。我正在将 ui-router 用于 Angular Web 应用程序。我正在使用 apache2 服务器为 angular 应用程序提供服务。我正在使用 Ubuntu。我的项目代码位于文件夹 \var\www\html\myapp 中,这里myapp是我的应用程序文件夹。我已经尝试了以下
1添加<base href="/myapp/">到头部标签
2添加$locationProvider.html5Mode(true);$locationProvider.html5Mode({ enabled: true, requireBase: false}); (分别尝试)
3添加.htaccess具有以下内容的文件

以及我从谷歌获得的 .htaccess 文件的一些其他内容以提供路径。
我尝试将 .htaccess 文件放在 \var\www\html\ 以及 \var\www\html\myapp 中。它会从 url 中删除哈希,但是当我单击刷新时,它会显示not found。谁能帮帮我吗。

0 投票
0 回答
95 浏览

angularjs - Express + AngularJS html5mode 刷新时无法正常工作

我正在使用 Express 和 AngularJS 构建 Web 应用程序。问题是我虽然非常了解如何找出 html5 模式(避免 url 上的 Angular 应用程序的 hashbang),但我没有。

现在对于普通的 url,比如 www.url.com/register,它工作得很好。即使我刷新它,它也能保持稳定。但是,对于某些具有“www.url.com/user/1231231412414”等参数的 url,当我刷新它时,我会看到裸露的 json 数据集。

我把 router.get('*', {=}) 东西放在路由脚本的最后,并尝试了我能做的任何事情,但我完全被卡住了。

有没有人知道解决方案并经历过这个问题?对于这个问题的任何帮助或建议,我将不胜感激。多谢你们。

0 投票
1 回答
106 浏览

javascript - ui-router html5Mode 不喜欢静态 html 文件的 href

当使用不带 html5Mode 的 ui-router(使用 hangbang URL 语法)时,使用 hrefs 对其他页面(或静态 html 内容)进行整页刷新的锚标记工作正常。一旦我启用了 html5Mode,href 就会更新浏览器中的 URL,但不会发出服务器请求。

我的印象是 html5Mode 会像非 html5Mode 一样工作,因为它会尊重 href 与 ui-sref。

我错过了什么吗?

我创建了一个 plunker,如果将其设置为 html5Mode(true),则无法导航到静态 html 文件。如果设置 html5Mode(false),则可以导航到静态 html 文件。在这两种情况下,所有其他路由都可以正常工作。

有任何想法吗?

http://plnkr.co/edit/nFtjHX?p=preview

并且因为我需要在添加 plunker 链接时显示代码,所以这里是配置:

0 投票
0 回答
330 浏览

node.js - react-router 中的 HTML5 模式

我在树莓派上构建了一个不错的网络服务器。我使用 react-router 和 apache 来运行 Web 应用程序。但是我现在的问题是 apache 服务器不在 HTLM5 模式下,并且没有按照我的意愿显示漂亮的 url。如何将其置于 HTML5 模式?有人可以为我的问题找到解决方案吗?我会非常感谢。

0 投票
1 回答
627 浏览

angular - 使用 HTML5Mode 配置多个 AngularJS2 项目的 Nginx 配置

我的 Nginx 配置有问题。我有两个单独的 angularjs2 项目,它们应该与一个 nginx 实例一起使用。应用程序分为两个文件夹 /admin 和 /webapp。

现在我要做的是,当我调用 mydomain.com 时,它应该在 /webapp 中打开应用程序。如果我调用 mydomain.com/admin 它应该打开管理应用程序(这也是一个 angularj2 应用程序)。

到目前为止,我尝试过的是以下内容:

我希望我能得到帮助。提前致谢!

0 投票
3 回答
3435 浏览

javascript - 刷新页面时,AngularJS路由返回404错误

我是 angularJS 的新手,我喜欢用它编码。我目前正在使用 angularJS 构建一个 Web 门户,并且我的每个页面都使用ngRoute. 它对我来说很好,但是当我尝试刷新页面时,它返回给我一个404 error / page not found. 在这个问题上我应该怎么做?这是我的代码:

在我的HTML中

这是我的 .htaccess 看起来像

0 投票
1 回答
990 浏览

angularjs - htaccess 重写到 dist 文件夹并将 AngularJS html5mode 设置为 true

我在 AngularJS 中有一个应用程序,我需要将 html5mode 设置为 true 以便/#/从 URL 中删除哈希。dist在文件夹中可以找到缩小版的应用程序。

问题:我的目标是重写dist文件夹的流量并允许启用 html5mode。有人可以帮忙吗?

<base href="/" />我可以通过设置和添加$locationProvider.html5Mode(true);到应用程序配置和 ui-router 文件的底部来让 html5mode 工作 。

所有这些都适用于通过 Gulp 使用 NodeJS 的开发模式。当我将应用程序移动到 Apache 上的其他环境时,设置出现问题。

问题是:

A. 该应用程序无法加载任何资产,因为它正在服务器根目录中查找它们。

B. 应用程序无法重新加载并登陆请求的 URL。它给出了 404 错误。

如果没有在应用程序中启用 html5mode,我正在使用这个 htaccess 重定向到dist文件夹并且它工作正常。

它需要在不同的环境中工作相同,以便我可以在本地和其他环境中使用它。在本地它会打开localhost/project_name/app/webapp/(dist),而在其他环境中它会打开https://app.example.com/(dist)

我也尝试过设置<base href="/dist/" />,但它也不起作用。它只会将dist文件夹添加到资产路径,并且在开发中也无法使用,因为应用程序不会从dist.

基本上这些零件都可以工作,但是放在一起就失败了。

我已经经历了许多 SO 答案,但都没有成功:

在 html5mode(true) 视图中没有加载 Angular js 中的页面刷新

AngularJS + html5Mode + 自定义后备

apache上带有html5mode(true)的angularjs ngroute失败

AngularJS:html5Mode(true) 导致 404 错误

0 投票
1 回答
146 浏览

javascript - 角链接在服务器上中断

我们正在处理类似于这些404 Refresh 场景的情况 我们处于 html 5 模式,因此我们需要重写以修复 url。问题是,适用于已部署应用程序的解决方案在开发期间无法在 Visual Studio 中运行。

我们针对已部署应用程序的解决方案通过在 web.config 中添加以下内容来工作:

然后对 index.html 进行以下更改:

除了我们在 Angular 中构建的链接之外,这大部分都很有效。例如

部署的应用程序不会将“myAppName”放在 url 中。为什么是这样?

第二个问题是在我们的 Visual Studio 开发环境中<base href="/myAppName/">破坏了应用程序。这会使应用程序在输出中生成无穷无尽的错误字符串,如下所示:

这似乎是一个无限循环,直到内存耗尽。但是,如果我从中删除应用程序名称<base href="/myAppName/">,它似乎工作正常,但随后在服务器上中断。

问题出在哪里的任何想法?为什么解决方案只能在一方面发挥作用,开发或部署,我们如何解决这个问题?