我有一个角度应用程序与几个路由,如:
site.com/ site.com/page site.com/page/4
使用angular的html5路由模式,当您点击应用程序中的链接时,这些解决方法会正确解析,但当您执行硬刷新时,当然是404错误。为了解决这个问题,我试过实现一个基本的htaccess重写。
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_METHOD} !OPTIONS RewriteRule ^(.*)$ index.html [L]
这适用于角请求,但是当我尝试加载脚本或在我的域中进行ajax调用时,如:
<script src="/app/programs/script.js"></script>
此脚本不加载 – 它的请求被重定向,它试图加载index.html页面作为.htaccess认为它应该重新路由请求 – 不知道这个文件的确存在,它应该加载文件,而不是重定向。
有没有什么办法,我可以有htaccess重定向请求到index.html(与视图参数)只有当没有一个实际的文件,它应该解决吗?
使用以下代码段:
RewriteEngine on RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^(.*) /index.html [NC,L]
这将跳转到实际资源,如果有一个和index.html所有angularjs路由。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。