【问题标题】:Angular2 CLI deploy, useHashAngular2 CLI 部署,使用哈希
【发布时间】:2017-04-23 10:30:23
【问题描述】:

我目前正在尝试使用 CLI 构建部署我的 Angular2 应用程序,现在它运行良好,我正在将 dist 的内容复制到服务器根目录上的文件夹中。

现在它运行良好,但是当我在路线上重新加载页面时,它无法正常工作。经过一番谷歌搜索,我发现RouterModule.forRoot(routes, { useHash: true }) 中的useHash 解决了这个问题。

所以我的问题是:还有其他方法吗,因为我更喜欢漂亮的 URL。

【问题讨论】:

    标签: angular hash deployment build


    【解决方案1】:

    根据您的服务器,您必须添加重写规则以将所有内容重定向到您的index.html 页面。它会解决问题。

    Apache2 中,添加您的.htaccess

    <IfModule mod_rewrite.c>
      Options Indexes FollowSymLinks
      RewriteEngine On
      RewriteRule ^index\.html$ - [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /index.html [L]
    </IfModule>
    

    IIS

    <rule name="AngularJS" stopProcessing="true">
      <match url="[a-zA-Z]*" />
      <conditions logicalGrouping="MatchAll">
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
        <add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
      </conditions>
      <action type="Rewrite" url="/" />
    </rule>
    

    另外请记住,您可能必须为您的 API 路由添加一个例外(按照惯例,/api)。

    【讨论】:

    • 让我尝试一些 .htaccess 规则,稍后再回复
    • 工作得很好,谢谢队友! (将在 7 分钟内接受答复)。
    • 没问题,下次别忘了搜索!
    猜你喜欢
    • 2021-09-01
    • 1970-01-01
    • 2019-12-13
    • 1970-01-01
    • 2016-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-30
    相关资源
    最近更新 更多