在Azure中为SVG和字体表达NodeJS web.config

kub*_*ube 5 svg web-config azure node.js mime-types

我在Express网站上遇到了问题,该网站使用SVG和其他文件,如字体.

在本地运行应用程序时没有任何问题,但一旦部署在Azure上,SVG和字体就不再出现了.

web.config在项目根目录创建了一个文件:

<?xml version="1.0" encoding="utf-8"?>
  <configuration>
    <system.webServer>

      <staticContent>
        <mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
        <mimeMap fileExtension=".woff" mimeType="application/x-woff" />
        <mimeMap fileExtension=".ttf" mimeType="application/x-woff" />
      </staticContent>

    </system.webServer>
  </configuration>
Run Code Online (Sandbox Code Playgroud)

也用这个解决方案:( 在windows azure中的Svgs和其他mime类型)

这两种解决方案现在都允许加载SVG文件,但不再加载网页.(HTTP 500)

它似乎覆盖了动态内容的配置.

如何配置动态内容以使应用程序再次运行?

kub*_*ube 9

我发现了这个问题.

使用此解决方案:( Windows中的Svgs和其他mime类型)

动态内容重写规则中,替换server.jsapp.js,这是Express创建的默认入口点.

最终结果是:

<?xml version="1.0" encoding="utf-8"?>
  <configuration>
    <system.webServer>

      <staticContent>
        <mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
        <mimeMap fileExtension=".woff" mimeType="application/x-woff" />
        <mimeMap fileExtension=".ttf" mimeType="application/x-woff" />
      </staticContent>

      <handlers>
        <add name="iisnode" path="app.js" verb="*" modules="iisnode" />
      </handlers>

      <rewrite>
        <rules>
          <rule name="DynamicContent">
            <match url="/*" />
            <action type="Rewrite" url="app.js" />
          </rule>
        </rules>
      </rewrite>

    </system.webServer>
  </configuration>
Run Code Online (Sandbox Code Playgroud)

  • 说真的,谢谢.我没有得到Azure支持的帮助. (3认同)