如何在Linux服务计划上的Azure Web App中为Angular设置“默认页面”

时间:2018-11-14 16:07:58

标签: angular deployment azure-web-app-service azure-service-plan

我可以在Linux服务计划上将Angular部署到Azure Web Apps,当点击{myapp} .azurewebsites.net / index.html

时,它可以正常工作

我可以按预期在应用内导航。

点击根目录{myapp} .azurewebsites.net时,它只会显示hostingstart.html。

按照某些文章中的建议删除hostingstart.html并没有帮助。

如果我尝试直接点击子页面的网址(例如{myapp} .azurewebsites.net / mypage),则会收到错误消息:无法获取/ mypage (在本地运行时有效)

我怀疑我需要设置默认页面,但是我无法在Azure Web App的“应用程序设置”中的任何位置找到此页面。 (我认为这仅适用于Windows服务计划,而不适用于Linux服务计划。)

我如何正确部署到Linux App Service才能正常工作?

我找到了很多有关此问题的文章,但它们似乎都涵盖了Windows App Service Plan。

1 个答案:

答案 0 :(得分:0)

您需要将URL重写规则添加到Apache服务器,以便将任何页面请求重定向到Angular的index.html

将其粘贴到您的根.htaccess文件中:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.html [L]
</IfModule>

(来源:https://github.com/angular/angular/issues/11884#issuecomment-288852433

编辑:如果使用的是node.js后端,请参见以下SO答案以供参考:https://stackoverflow.com/a/34864585/235648