我正在开发一个从 CLI 构建的 Angular 4 应用程序,而后端 API 仍在开发中,我已经在 assets 文件夹下为 http.get 设置了一些 json 文件。在我的本地一切正常,但是当我部署到 IIS 时,在开发工具的网络选项卡中,我在尝试访问 json 文件时看到 404。我在代码中设置 URL 的方式是硬编码“assets/api/manager/model.json”。我通过运行 npm build --prod 构建项目并复制 dist 文件夹中的内容。构建后,我确实在 dist 下看到了 assets/api/manager/model.json 文件。我看到在 IIS 上托管时有多种调整路由的方法,我已经尝试了所有方法(我认为)但似乎无法让它工作。
下面是http.get代码
private assignTasksViewModelUrl = 'assets/api/manager/model.json';
getTaskAssignmentViewModel(): Observable<AssignTasksViewModel> {
return this.http.get(this.assignTasksViewModelUrl)
.map((response: Response) => <AssignTasksViewModel>(this.extractDate(response)))
.do(data => console.log(JSON.stringify(data)))
.catch(this.handleError);
}
最佳答案
为我添加作品。只是提醒标签应该在里面 :
<system.webServer>
...
<staticContent>
<remove fileExtension=".json" />
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
...
</system.webServer>
另一种方法是转到 IIS 管理器向其添加 MIME 类型。
转到 IIS 管理器 --> 打开您的网站 --> 单击右侧的“功能 View ”选项卡 --> MIME 类型(双击)--> 操作:添加(右侧)--> 文件扩展名:.json,MIME 类型:application/json。
关于Angular 4访问IIS中 Assets 下的json文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43877476/