NodeJS 在Azure应用服务中运行故事书(非静态故事书)

owfi6suc  于 2023-02-03  发布在  Node.js
关注(0)|答案(2)|浏览(168)

我在本地运行Storybook,没有问题。我可以使用npm run storybook命令启动它。但是,当我尝试在Azure应用服务中托管Storybook时,它无法加载,并在运行npm run storybook后出现以下错误:
您没有权限查看此目录或页面。
我试着将storybook构建到静态文件中,并将App Service默认文档设置为index.html,但我们需要使用storyStoreV7选项,该选项在静态构建中不起作用。如果静态文件与storyStoreV7一起使用,我将不使用App Service,而只构建静态文件:https://github.com/storybookjs/storybook/issues/16967
与运行server.js的节点应用相比,Storybook没有传统的起始页(从我所看到的),并且我希望使用Azure应用服务节点应用中的节点模块运行完整的Storybook,因此如何加载Storybook?
当我在Storybook中运行npm run storybook命令时,它的行为就像是在启动应用程序,但同样,除了前面提到的错误外,https://mystorybook.azurewebsites.net URL处没有显示任何内容。

inb24sb2

inb24sb21#

  • 在这里,我可以通过使用本地git进行部署并添加starting命令来部署storybook-react应用程序
  • 您可以使用Azure门户中的deployment center选项卡设置部署策略,只需将本地git repro推送到门户中提供的链接即可

输出:

kyvafyod

kyvafyod2#

深入研究之后,它在获取stories.json时不断出错,因此我需要将web.config更改为:

<configuration>
<system.webServer>
            <staticContent>
            <mimeMap fileExtension=".json" mimeType="application/json" />
     </staticContent>
</system.webServer>
</configuration>

这是根据:https://learn.microsoft.com/en-us/archive/blogs/africaapps/how-to-serve-static-json-files-from-a-windows-azure-website
有了这个,它可以读取stories.json并呈现故事书。我还需要将index.html作为应用服务上的默认文档,因为这是静态构建的起点(我将static-storybook文件提取到Azure应用服务的wwwroot)。
这确实利用了静态构建,并解决了stories.json未加载的问题。

相关问题