【问题标题】:What is Azure doing with my app.js?Azure 对我的 app.js 做了什么?
【发布时间】:2013-02-28 01:30:57
【问题描述】:

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

app.js

filters.js

【问题讨论】:

    标签: node.js azure iisnode


    【解决方案1】:

    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 作为起点。

    【讨论】:

    • 谢谢,我有两个名为 app.js 的文件,一个位于根文件夹(node.js 应用程序)中,一个位于文件夹 /public/app.js(angularjs 主应用程序)中。
    • 同样的问题发生在我身上,但只有当我添加重定向规则来强制 https 时。看到这个 - stackoverflow.com/questions/20578283/…
    猜你喜欢
    • 1970-01-01
    • 2019-03-30
    • 2013-03-07
    • 2011-05-07
    • 2010-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多