Angular Routing和Nginx重写问题

时间:2018-10-26 10:46:16

标签: angular nginx

我们正在Nginx上为即将启动的应用程序运行angular。 Angular正在使用其路由功能,因此默认情况下,如果要刷新页面,Nginx将返回404错误,因为找不到路由路径。

为纠正此问题,我们在Nginx配置中添加了以下部分:

location / {
                try_files $uri $uri/ /index.html?$args;
        }

在一定程度上可以正常工作,如果您执行浏览器刷新,则页面现在将部分加载。问题在于各种资产的路径正在扭曲。

例如,我们在网站上有一个名为“帐户/登录”的路径,该路径的访问方式如下:

http://site.name/Account/Login

该页面的Assets文件夹中有一个CSS文件。通常,当完全通过Angular路由访问页面(即不刷新刷新)时,它将位于以下位置:

http://site.name/Assets/CSS/Login.css

我们发现的是,在刷新页面并重新编写页面时(在加载页面时),资源路径扭曲并变为:

http://site.name/Account/Login/Assets/CSS/Login.css

我怀疑这与Nginx无关,实际上,它是Angular端所需的一些配置,用于指定如何引用路径,但是我们对Angular还是陌生的,所以不确定从哪里开始。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在Nginx Config文件中尝试这样

   location / {
       index  index.html $yii_bootstrap;
       try_files $uri $uri/ /$yii_bootstrap?$args;
   }