我对App Service内部是如何工作的感到非常困惑。我正在探索它,并希望通过门户创建一个简单的应用服务来提供静态文件,但只找到一个使用shell的教程,而不是Azure门户,它还需要我不需要的存储等服务。
以下是我尝试过的:
1.获得了订阅并创建了附加到免费试用订阅的资源
1.使用新的Linux服务计划和代码(不是容器)在Linux上创建一个基本(免费)的应用程序服务。我不能选择任何只有静态Web服务器的堆栈或运行时,所以我选择Node(LTS)。我将启动命令留空(稍后我将对此进行扩展)。http版本1. 1或2似乎没有什么区别。FTP已启用。
1.该资源是正确创建的,我可以看到典型的托管启动Web
1.我连接到SFTP,我可以看到我有一个路径site/wwwroot,其中有一个文件hostingstart.html
,看起来与我访问网站URL时看到的屏幕截图上的欢迎页面完全相同。我对自己说:"太好了!我可以简单地编辑这个html,我应该看到结果"。错误。它似乎不是正在提供的html。不知道为什么它在那里,但如果我删除它,我仍然看到我的网站的网址相同的着陆页。
1.我创建了一个site/wwwroot/index.html,但没有运气。这不是服务。可能Node在默认情况下没有配置为这样做。
1.我创建了一个简单的server.js,它能够静态地服务任何文件:https://github.com/TheJaredWilcurt/NPM-Free-Server所以我使用FTP来放置一个site/wwwroot/server.js,并留下一个index.html(在我的本地主机上它可以工作:))。
1.我在App Service中配置了一个初始命令,如node server.js
,这样它就可以运行并为页面提供服务,然后我重新启动服务器。没有,没有效果。
1.我可以在日志中看到我的server.js正在运行。我可以看到一个跟踪显示它在localhost:8000上运行
在这个阶段,已经有几个小时的调查没有运气。不会那么难的!我发现以下问题令人惊讶地没有得到回答:www.example.com https://github.com/MicrosoftDocs/azure-docs/issues/32572#issuecomment-551053105
有人能解释一下吗?我愿意接受建议。* * 我的目标是:让(仅)一个应用程序服务通过Portal**创建一个包含hello world的静态index.html。
谢谢
- 更新1**:感谢https://stackoverflow.com/users/188096/gaurav-mantri的建议。但我想强调应用服务是必需的,因为它是用于培训目的,我想从非常基本的到更复杂的动态应用程序,具有相同的服务和持续部署。
5条答案
按热度按时间vd8tlhqk1#
如果您只关心托管静态内容而不关心服务器端代码,请查看Azure存储中的静态网站托管:https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blob-static-website。您不需要为此创建应用服务。
mftmpeh82#
@iberodev我部署了一个苗条的应用程序到应用程序服务。我使用了部署中心。正如你所做的,我将应用程序标记为Node 10应用程序。
Azure部署管道在生成Docker容器后确实运行了
npm run build
和npm run start
命令(至少我在几个地方查看日志文件时是这样认为的)。"start": "sirv public --single -H 0.0.0.0"
工作正常"start": "sirv public"
,这是来自原始svelte模板的start命令,这会导致docker容器无法启动。这是我迄今为止的实验。
我想但我不确定; Azure将在
package.json
中运行start
命令,这样我的演示应用程序就可以工作了。sirv
命令来自package.json中的sirv-cli
。如果你愿意,你可以尝试其他的静态文件服务器,比如
serve
。通过这种方式,您可以分阶段开发和提交,以拥有一个逐渐增强的应用程序。
我不确定
sirv
命令作为prod的web服务器的性能。但你说这是训练用的,会合身的。package.json
ia2d9nvy3#
我也遇到了同样的问题,一直无法弄清楚为什么新创建的Web应用程序不直接使用hostingstart.html文件。在许多不同的技术堆栈配置中都是如此。然而,我使用these steps在azure中创建了一个静态html(包括css和js)web应用程序。
这创建了一个基于.Net的webapp,该app在门户中不可用。它有选项,特别是在默认页面上,等等。我现在已经重新使用了这个网络应用程序,从头开始这个项目,并继续在它的基础上进行构建。希望这能帮上忙。
ffx8fchx4#
我得到了这个工作时,改变了应用程序计划,以窗口,应用程序服务窗口,运行时.NET 5和删除hostingstart.html
iibxawm45#
它可能是旧的,但我今天仍然遇到了同样的问题,我能够通过使用配置中的PHP堆栈(不使用.NET或Node)使它与Linux应用程序服务计划一起工作。希望有帮助!