在将 Angular v15 应用程序部署到基于 Apache 的主机后,我在从 URL 中删除
#
主题标签时遇到了一些问题,因为一旦在客户端关闭它,服务器将无法在刷新时加载正确的页面,并产生 404 错误。
我找到了,在官方文档中,上面写着:
您必须配置服务器以在请求它没有的文件时返回应用程序的主机页面(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>
我现在面临的问题,改完之后,我的API就不能用了。它来自
/api/
根,从mywebsite.com/api/login
开始,现在将我转发到index.html
.
在 Angular 中是否有针对此问题的修复,以某种方式添加
/api
异常,或者是否针对上述脚本进行了修复,以跳过 /api
路线?
这是我在网站根目录中拥有的完整
.htaccess
文件,托管在A2:
# DO NOT REMOVE. CLOUDLINUX PASSENGER CONFIGURATION BEGIN
PassengerAppRoot "/home/vitalyto/ptintec-api"
PassengerBaseURI "/"
PassengerNodejs "/home/vitalyto/nodevenv/ptintec-api/16/bin/node"
PassengerAppType node
PassengerStartupFile src/index.js
# DO NOT REMOVE. CLOUDLINUX PASSENGER CONFIGURATION END
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.html [L]
</IfModule>