将node.js / express应用程序部署到Azure网站时,我在浏览器中收到“无法获取/”错误。同一个应用程序在本地计算机上运行完美。
class ComponentA extends Component {
render() {
<Photo {...this.props}></Photo>
//want to fire mouse enter event of Photo
}
}
class ComponentB extends Component {
render() {
<Photo {...this.props}></Photo>
//want to not fire mouse enter event of Photo
}
}
是标准的(我只删除了静态重写规则),所以:
web.config
代码部署在 <!-- All other URLs are mapped to the node.js site entry point -->
<rule name="DynamicContent">
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True"/>
</conditions>
<action type="Rewrite" url="src/server/app.js"/>
</rule>
</rules>
(节点功能)和src/server/
(静态内容)文件夹中。
根据FREB日志获取src / server / apps.js,但最后会抛出以下错误:
src/client/
内部ErrorCode The system cannot find the file specified. (0x80070002)
我对静态文件有以下配置:
app.js
答案 0 :(得分:1)
Azure网站从 app.use(express.static('./src/client/'));
中定义的文件作为起始文件所在的文件夹运行节点,例如,对于以下内容:
package json
事实上,它将从"start": "node src/server/app.js"
文件夹运行node app.js
(您还可以找到src/server
文件)。这导致所有相对路径混乱。对此的一种解决方案是使用绝对路径,例如:
iisnode.yml
并使用例如路径在路径之间切换app.use(express.static('D:/home/site/wwwroot/src/client/'));
变量。