gpt4 book ai didi

json - Angular 2 应用程序部署到 Azure 时出现错误 404

转载 作者:太空狗 更新时间:2023-10-29 17:42:29 25 4
gpt4 key购买 nike

我有一个 Angular 2 应用程序,其中有一个简单的 server.js 作为 Node.js BE。

我已将应用程序部署到 Azure,现在应用程序加载并显示欢迎页面。

当我到达尝试通过 HTTP 请求读取本地 JSON 的组件时,我收到 404 错误(我在本地环境中没有收到该错误)。 enter image description here

读取json的代码如下:

private ReadFromJson(path: string): Observable<string[]> {
return this._http.get(path)
.map((response: Response) => <string[]>response.json())
.do(data => console.log('All: ' + JSON.stringify(data)))
.catch(this.handleError);
}

实际传递的路径是控制台中显示的路径。

我做了两件事:首先,我使用 Azure CLI 确保该文件确实存在,并且它按预期存在。

其次,在查看了许多帖子后,我发现的唯一其他解决方案是按照建议添加 MIME 类型 here ,但这对我来说也不起作用。

我真的很需要一些帮助来理解和解决问题,欢迎任何建议!

最佳答案

更新:

如果您的应用程序只是前端(Angular)应用程序,那么您不再需要通过 Node.js 提供这些静态文件。因为默认情况下Azure App Service已经在其上安装了IIS,并且IIS可以通过进行一些配置来提供任何文件类型。因此,在这种情况下,您可以保持 web.config 如下所示,并将其放入“site/wwwroot/dist”。

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<system.webServer>
<staticContent>
<remove fileExtension=".json" />
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
</system.webServer>
</configuration>
<小时/>

当您在 Azure 应用服务上部署 Node.js(它将使用 iisnode 托管您的应用)时,您可能有一个类似于 this link 中内容的 web.config 文件。 .

默认情况下,此配置文件采用 /public 文件夹中的静态文件。

<!-- First we consider whether the incoming URL matches a physical file in the /public folder -->
<rule name="StaticContent">
<action type="Rewrite" url="public{REQUEST_URI}" />
</rule>

所以,将其添加到 web.config 后,

<staticContent>
<remove fileExtension=".json" />
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>

请确保静态文件已放入/public文件中。

enter image description here

enter image description here

关于json - Angular 2 应用程序部署到 Azure 时出现错误 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44767665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com