inv*_*mer 5 azure reactjs azure-web-app-service
我们在Microsoft Azure中创建了一个Linux Web App。该应用程序是用React(HTML和Javascript)静态编写的。我们将代码复制到了wwwroot文件夹中,但是该应用程序仅仅显示hostingstart.html,并且当我们尝试获取页面index.html时出现以下错误:
Cannot GET /index.html
我们尝试在GitHub(https://github.com/Azure-Samples/html-docs-hello-world)中使用Azure的示例,但错误是相同的。网址是这样的:https://consoleadmin.azurewebsites.net/index.html
上周,应用程序运行正常。
我们忘了做什么?
Dei*_*ior 39
2020年5 月- 您无需在任何地方添加任何 javascript 文件或配置文件。让我解释。
我面临着完全相同的问题,浪费了 6 个小时尝试一切,包括对这个问题最流行的答案。虽然接受的答案是一个不错的解决方法(但需要做的工作不仅仅是添加 index.js 文件),但还有比这更简单的方法。
您会看到,当您仅部署 Azure Web 应用程序(或也称为应用服务)时,会发生两件事:
Web 应用程序默认指向 opt/startup/hostingstart.html
它还在 home/site/wwwroot 中放置了一个 hostsstart.html
当您部署代码时,它会替换 home/site/wwwroot 中的 hostsstart.html,但该应用程序仍指向 opt/startup/hostingstart.html。如果您想验证这一点,请尝试删除 opt/startup/hostingstart.html 文件,您的 Web 应用程序将抛出“无法获取/”错误。
那么如何更改默认指针呢?它比看起来更简单:
转到 Web 应用程序上的“配置”选项卡,并将以下代码添加到启动脚本中:
pm2 serve /home/site/wwwroot --no-daemon
Run Code Online (Sandbox Code Playgroud)
如果此 Web 应用程序是客户端单页应用程序并且您遇到路由问题,则将 --spa 添加到上述命令中,如下所示:
pm2 serve /home/site/wwwroot --no-daemon --spa
Run Code Online (Sandbox Code Playgroud)
这将告诉 Web 应用程序提供 wwwroot 文件夹。就是这样。
参考图片: 截图说明
PS:如果你只设置启动脚本而不部署你的代码,它仍然会显示hostingstart.html,因为默认情况下该文件位于wwwroot文件夹中。
小智 7
好吧,你会喜欢这个。今天我也发生了这种情况。完全一样。我很确定,天青团队在某个地方拨了一个开关,我们就跌入了裂缝。
我发现这个晦涩的答案没有选票,而且确实成功了(有一些额外的麻烦)
奖金!这也解决了我仅在已部署站点(而非本地站点)上遇到的路由器问题:
信用:@stormwild:默认文档不在Azure托管的节点Web应用程序上提供
从@stormwild的帖子中看到这里:https ://blogs.msdn.microsoft.com/waws/2017/09/08/things-you-should-know-web-apps-and-linux/#NodeHome
脚步:

使用以下代码在其中创建index.js:
var express = require('express');
var服务器= express();
var options = {
索引:“ index.html”
};
server.use('/',express.static('/ home / site / wwwroot',options));
注意:请确保也在此文件夹中运行npm install --save express,否则您的应用程序服务将在启动时崩溃
如果没有自动重启应用程序服务,请确保它不会自动重启
| 归档时间: |
|
| 查看次数: |
1670 次 |
| 最近记录: |