我希望你做得好。我刚刚部署了一个非营利组织网站,我最近一直在这里(在这里找到:www.leonesistersunited.com)使用CLI为godaddy构建产品。部署后,一切都很好,就像预期的那样。但是,在任何页面上,如果刷新浏览器,则会出现404错误。关于可能导致这种情况的任何想法?问题来自我还是来自GoDaddy?我在Windows层(IIS)上托管。
感谢。
答案 0 :(得分:1)
您需要使用重写模块部分部署web.config。如果godaddy服务器安装了它(它们应该),那就是所需要的一切
使用URL Rewrite规则添加web.config文件 对此Web应用程序的所有非文件或文件夹请求都应定向到应用程序的根目录。对于默认网站下的应用程序或虚拟目录,应将URL设置为别名(例如“/ MyApp /”)。对于服务器根目录的网站,URL应设置为“/".
dill
答案 1 :(得分:0)
对于GoDaddy虚拟主机,有两种不同的解决方案
在Angular index.html中编写基本引用
<base href="/nameOfTheappFolder/"> or
部署ng build --prod --base-href“ / nameOfTheAppFolder /”
在您使用angular 6 app.module调用此提供程序
providers: [{ provide: APP_BASE_HREF, useValue: '/nameForTheAppFolder/'}]
对于Linux托管,您可以执行.htacces文件,例如替换应用程序目录文件夹名称
<IfModule mod_rewrite.c>
Options Indexes FollowSymLinks
RewriteEngine On
RewriteBase /myappdirectory/
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /myappdirectory/index.html [L]
</IfModule>
对于Windows托管,您可以执行web.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Angular Routes" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="./index.html" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>