Azure用我的app.js做什么?

时间:2013-02-27 12:04:08

标签: node.js azure iisnode

为什么iisnode试图将我的app.js文件作为HTML发送?然而每个其他* .js文件,它作为javascript正确发送。例子:

app.js

filters.js

1 个答案:

答案 0 :(得分:2)

Windows Azure网站中的 iisnode并未尝试将您的app.js作为HTML发送回来。它试图将其作为node.js应用程序(https://github.com/tjanczuk/iisnode)运行。您可以在随Windows Azure Web站点应用程序一起部署的web.config文件中找到此原因(您可以通过FTP连接到您的站点来检查该配置文件)。它包含以下条目:

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

上面的web.config条目指示IIS将app.js的所有请求重定向到iisnode,因此将其视为node.js应用程序,而不是遵循将其作为静态文件提供的默认行为。

如果将应用程序部署到没有web.config的Windows Azure网站,Windows Azure网站将运行启发式方法来确定应用程序的类型并为其生成适当的web.config文件。显然在你的情况下,它确定它是一个node.js应用程序,因此它添加了上面的web.config条目。

如果要将app.js文件作为静态文件提供,则有两个选项。您可以将该文件重命名为其他名称。或者,您可以将web.config文件与不包含上述部分的应用程序一起部署。您可以使用Windows Azure网站为您创建的web.config作为起​​点。