minimal azure node.js config将.js文件作为纯文本提供,而不是处理它们

时间:2014-12-27 16:25:50

标签: node.js iis azure iisnode

我想配置azure“网站”服务以使用我自己的web.config(更好的日志控制)。我在web.config部署git项目的根目录中创建了一个简单的node.js

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="iisnode" path="src\server.js" verb="*" modules="iisnode"/>
    </handlers>
  </system.webServer>
</configuration>

在我部署并访问azure网站后,它向我显示src\server.js的内容,而不是将其作为iisnode应用程序处理:(。我知道这是一些愚蠢的错误,但谷歌搜索出来是非常痛苦的 - 所有我对“纯文本”的搜索法术都被无数的“如何通过iisnode服务器静态内容”条款所击退:(。从头开始学习所有iis / iisnode / web.config机器对我的简单任务来说有点矫枉过正。任何提示是什么要添加到此web.config中以便iisserver.js作为iisnode脚本处理,而不是作为纯文本处理?

更新

检查通过azure向导创建的node.js存储库,我发现仅当server.js所在的位置是src子目录时才会出现问题。如果它位于根目录中,则一切正常。任何有关iisnode这种行为的提示?我想要子目录:(。任何不允许的文档?

1 个答案:

答案 0 :(得分:3)

我认为您需要向rewrite添加web.config规则。 IISNode模块依赖于IIS URL Rewrite模块将请求路由到NodeJS应用程序。

<rewrite>
  <rules>
    <rule name="iisnode">
      <match url="src/*" />
      <action type="Rewrite" url="server.js" />
    </rule>
  </rules>
</rewrite>

<强>来源