我可以在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。
答案 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