1

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

应用程序.js

过滤器.js

4

1 回答 1

2

Windows Azure 网站中的 iisnode 不会尝试将您的 app.js 作为 HTML 发送回。它正在尝试将其作为 node.js 应用程序 ( https://github.com/tjanczuk/iisnode ) 运行。您可以在随 Windows Azure 网站应用程序一起部署的 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 作为起点。

于 2013-02-27T17:30:57.167 回答