angular - 刷新后将 Angular 2 部署到 GoDaddy 404

标签 angular web-applications deploying

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

谢谢。

最佳答案

对于 GoDaddy 网络托管有两种不同的解决方案

在 Angular index.html 中编写 base-href

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

关于angular - 刷新后将 Angular 2 部署到 GoDaddy 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45448414/

相关文章:

javascript - 使用 ngChecked 将评级值绑定(bind)到 Angular 中的单选按钮

Angular 2 Material 对话框: refresh parent on dialog close

c# - 编译的dll中的序列化异常

javascript - 类切换 CSS 动画在 Chrome 中无法正确切换帧

php - Symfony 2 服务器部署 fatal error : It tries to open localhost file

mysql - Django,权限错误:OSError at/upload/[Errno 13] Permission denied:

java - 在 Web 服务器上部署 Tomcat 项目,文件问题

angular - TS "Cannot find name"仅在 polyfills.ts 打开时消失

angular - 如何对 () => void 类型的变量进行单元测试

web-applications - 在 Ubuntu 中本地托管 Web 应用程序