Angular应用哈希路由无法按预期工作

时间:2019-02-27 05:32:02

标签: angular nginx

我正在docker容器中运行我的Angualar7应用程序。它在本地主机上工作正常,但是当我在docker中运行它时。它可以到达abc.xyz,从该位置我可以单击主页上的abc.xyz/dashboard、abc.xyz/browseIdea。但是,当我直接点击abc.xyz/dashboard等网址时,它显示404未找到。

1。我需要更改nginx配置吗?

为解决此问题,我添加了哈希路由

@NgModule({
    imports: [RouterModule.forRoot(routes,{useHash : true})],
    exports: [RouterModule]
})

因此,它解决了找不到404 的问题,但是,它在刷新abc.xyz/#/仪表板url中重定向到abc.xyz/#。作为,哈希后将不会发送到服务器url。那么,我们不能仅将哈希路由仅用于组件路由吗?

而且,如果我在刷新时在本地主机中删除哈希路由,它将保持在刷新时所在的url中

  1. 为什么哈希路由重定向到路径“”。我在4-5个月前看到了一个使用哈希路由的应用程序,该应用程序没有重定向到路径”即abc.xyz/#

1 个答案:

答案 0 :(得分:0)

如果您不想使用哈希路由策略,则应配置服务器并将请求定向到应用程序的index.html。在您的.htaccess

中添加以下代码
RewriteEngine On
# If an existing asset or directory is requested go to it as it is
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
RewriteRule ^ - [L]

# If the requested resource doesn't exist, use index.html
RewriteRule ^ /index.html