在Windows 7 IIS服务器上部署angular 6代码时找不到http://localhost/myapp/assets/i18n/en.json

时间:2018-07-26 18:18:38

标签: angular iis url-rewriting

我正在尝试将应用程序部署到Windows 7 PC上的IIS服务器。网址是

http://localhost/myapp

  1. 我安装了URL重写。
  2. 这是我的web.config内容

<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="/MyApp/" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>
</configuration>

使用计算机上的“ ng serve”,我的应用程序运行得非常好。当我在Windows 7 PC上的IIS上部署时,该应用程序无法访问图像,json文件等资源。我收到404错误。我认为我的web.config文件有问题。部署后,文件en.json位于c:\ inetpub \ wwwroot \ myapp \ assets \ i18n文件夹中。 请帮忙。

2 个答案:

答案 0 :(得分:0)

问题是IIS 7没有默认文件扩展名“ .json”。这是web.config来添加“ .json”。

<configuration>
<system.webServer>
        <security>
            <requestFiltering>
                <fileExtensions>
                    <add fileExtension=".json" allowed="true" />
                </fileExtensions>
            </requestFiltering>
        </security>
        <staticContent>
            <remove fileExtension=".json" />
            <mimeMap fileExtension=".json" mimeType="application/json" />
        </staticContent>
</system.webServer>
</configuration>

“。json”文件扩展名是ISS 8中的默认文件扩展名。我必须先删除它,然后再添加它。

答案 1 :(得分:0)

更改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>
   <security>
            <requestFiltering>
                <fileExtensions>
                    <add fileExtension=".json" allowed="true" />
                </fileExtensions>
            </requestFiltering>
        </security>
        <staticContent>
            <remove fileExtension=".json" />
            <mimeMap fileExtension=".json" mimeType="application/json" />
        </staticContent>
</system.webServer>

 

</configuration>