【问题标题】:AngularJS 1.0.7 in html5Mode get 404 error when refresh pagehtml5Mode 中的 AngularJS 1.0.7 刷新页面时出现 404 错误
【发布时间】:2015-04-21 02:15:27
【问题描述】:

我知道有一些关于这个主题的帖子。我已经阅读了其中的大部分内容,但我认为我不够熟练,无法理解我应该做什么。

我有一个 AngularJS 1.0.7 网络应用程序。我刚刚将其配置为 html5Mode 以美化我的 URL。我的 URL 现在看起来不错,但我遇到了一个在更改之前没有的新问题。当我第一次加载我的索引页面时,我可以毫无问题地刷新它。但是,如果我导航到 example /about 中的其他页面,然后刷新页面,我会收到 404 错误。

例如在这篇文章中:Reloading the page gives wrong GET request with AngularJS HTML5 mode 我已经读到我应该将服务器端的 url 重写为我的入口点,我猜是 index.html,但我不知道这意味着什么以及如何去做吧。

有人能提供更详细和实用的例子吗?

当他们谈论服务器时,他们是什么意思?我有一个在 Nginx 服务器上运行的 Angular 应用程序,它将请求发送到在 Puma 服务器上运行的 Rails API。

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    所以想法是强制 Nginx 将所有 htpp 请求指向 index.html 并让 Angular 在您的应用程序中进行路由。

    您没有发布任何配置,所以这是最基本的:

    server {
     listen 80;
     server_name foobar.com www.foobar.com;
     index index.html;
     root /var/www/mysite;
    
    location / {
      try_files $uri$args $uri$args/ index.html;
     }
    }
    

    【讨论】:

    • 嗯,我只有一半快乐。这行得通!我可以重新加载任何页面。但是,现在其他一些功能已停止工作。例如,模态面板。如果我使用打开模态面板的链接转到与该索引不同的页面,如果我单击确定,模态面板将打开,但我也被重定向到 index.html。我错过了什么?
    • 你的 Angular.js 路由中可能有一些错误,我真的不能说其他任何事情,没有你身边的任何代码,我真的做得足够了 :)
    猜你喜欢
    • 2015-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-26
    • 2019-04-30
    • 1970-01-01
    • 2018-04-03
    • 2017-01-20
    相关资源
    最近更新 更多