刷新后将Angular 2部署到GoDaddy 404

时间:2017-08-01 22:06:02

标签: angular web-applications deploying

我希望你做得好。我刚刚部署了一个非营利组织网站,我最近一直在这里(在这里找到:www.leonesistersunited.com)使用CLI为godaddy构建产品。部署后,一切都很好,就像预期的那样。但是,在任何页面上,如果刷新浏览器,则会出现404错误。关于可能导致这种情况的任何想法?问题来自我还是来自GoDaddy?我在Windows层(IIS)上托管。

感谢。

2 个答案:

答案 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>