我对 AngularJS 和服务器配置的东西还很陌生,这是一个我到目前为止还没有找到令人满意的解决方案的问题。
我希望能够在网站上使用 HTML5 url(没有 hashbang),这样我就可以使用“mydomain/contact”之类的地址进行导航(为了简单起见,我将坚持使用“contact”示例)。
为此,正如我到目前为止发现的那样,应该做两件事:
- 在客户端启用 HTML5
在 app/app.js 文件上启用 HTML5 格式(同时添加依赖项)
$locationProvider.html5Mode(true);
它可以点击链接并获得正确的 url。尽管如此,它仍然不允许某人直接访问 HTML5 url。要进入“联系人”页面,我仍然无法直接访问“mydomain/contact”(我们得到 404),我知道这是有道理的。为了解决这个问题,仍然需要在服务器端实现一些东西。
- 服务器端配置
配置服务器以正确的文件响应,即我应该配置服务器使其在我请求“mydomain/#/contact”和“mydomain/contact”时以相同的方式响应。
最后一项是我卡住的地方。我找到了很多这样的答案:“你应该配置你的服务器”(他们假设读者已经知道如何做到这一点。我不知道),但我找不到一个完整的例子来说明如何做到这一点或在哪里放置任何需要的文件。
我正在使用 AngularJS 1.6.x 和 npm 3.10.9 (npm start)。我的问题是:有没有关于如何在 AngularJS 中充分使用 HTML5 url 的完整示例?