我正在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中
答案 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