javascript - AngularJS - 删除 Hashbang 后页面重新加载时出现 404 错误
问题描述
从我的路线中删除 hashbang 后使用
$locationProvider.html5Mode(true);
现在,当访问一个页面时,例如“domain.com/download”,它就可以工作了。但是如果我重新加载这个确切的页面,它会给我一个 404 错误。像“domain.com/download”这样的链接只能通过输入“domain.com/#!/download”来打开。加载后,它将再次将我重定向到正常的“domain.com/download”页面。
我使用 v1.3.2 进行路由,其余使用 v1.6.3 (不要问我为什么我没有创建这个站点,哈哈)。
解决方案
这就是AngularJS 文档所说的:
使用这种模式需要在服务器端重写 URL,基本上你必须重写所有指向应用程序入口点的链接(例如 index.html)。在这种情况下,需要一个标签也很重要,因为它允许 AngularJS 区分作为应用程序基础的 url 部分和应该由应用程序处理的路径。
您必须将您的更改.htaccess
为:
RewriteEngine On
Options FollowSymLinks
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /#/$1 [L]
推荐阅读
- shopify - 我的网站在 shopify 上显示为“前面的欺骗性网站”
- python - 使用 Python VLC 中的按钮开始和停止录制实时流
- php - simpe php 数据库连接不会连接数据库?
- angular - 滚动到底部时的自动完成事件
- python-2.7 - 龙卷风 websocket 的 ping/pong 实现
- xpath - Orbeon:检查重复网格中的任何是 - 否答案是否为真
- laravel - Kubernetes 上的 Laravel - 缓慢的作曲家供应商自动加载(生产)
- wireshark - Wireshark 中的 Y 轴和 Y 场
- javascript - RxJS 6:仅订阅 onComplete
- r-markdown - 在 RMarkdown `output = "html_document"` 中为数学表达式使用额外的 Latex 包