首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由于不允许的MIME类型(“text/html”),ASP.NET Core内部的角8被阻塞。

由于不允许的MIME类型(“text/html”),ASP.NET Core内部的角8被阻塞。
EN

Stack Overflow用户
提问于 2020-01-25 19:59:03
回答 2查看 1.9K关注 0票数 3

我试图建立我自己的角形8应用程序,从一个ASP.Net核心网站内部服务(所以我不需要处理跨站点脚本,或有两个(子)域,或认证问题。

我在VS代码中构建了一个web应用程序,并将其编译到了我的AspNetCore3.0项目中的文件夹wwwroot/app (我可以使用ng serve运行这个应用程序)。

我在Startup ConfigureServices()中添加了这个

代码语言:javascript
复制
services.AddSpaStaticFiles(configuration =>
{
 configuration.RootPath = "wwwroot/app";
});

把这个放在Configure()

代码语言:javascript
复制
app.UseSpa(spa => {});

这在一定程度上有效。当我加载asp.net项目时,角度应用程序开始加载。但是控制台中充满了(生成的index.html中指定的每个文件一个):

由于不允许的MIME类型(“text/html”),

从“https://localhost:5001/runtime.js”加载模块被阻塞。

由于不允许MIME类型(“text/html”),从“https://localhost:5001/polyfills.js”加载模块被阻塞。

由于不允许MIME类型(“text/html”),从“https://localhost:5001/vendor.js”加载模块被阻塞。

由于不允许MIME类型(“text/html”),从“https://localhost:5001/styles.js”加载模块被阻塞。

由于不允许MIME类型(“text/html”),从“https://localhost:5001/main.js”加载模块被阻塞。

据我所知,当文件被“编译”时,角cli没有包含mime类型,因此web浏览器不关心它们。

有角的人并不认为这是一个错误/错误,并且已经解决了一个与此相关的问题(尽管这个行为与Range7是如何做到的):https://github.com/angular/angular-cli/issues/10325

读到这个问题,How to add Mime Types in ASP.NET Core,我想我也许能做这样的事情:

代码语言:javascript
复制
var provider = new FileExtensionContentTypeProvider();
provider.Mappings[".js"] = "application/javascript";
provider.Mappings[".html"] = "text/html";
provider.Mappings[".ico"] = "image/vnd.microsoft.icon";


var statFilesOptions = new StaticFileOptions
{
    ContentTypeProvider = provider
};

app.UseSpa(spa =>
{
    spa.Options.DefaultPageStaticFileOptions = statFilesOptions;
});

若要向文件中添加mime/类型,请执行以下操作。但这一点也没有用。

关于如何在不编辑生成的文件的情况下修复文件,还有其他想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-26 10:28:35

这个问题完全不是我所期望的那样。asp.net核心应用程序实际上是为所有请求返回index.html文件,因为它找不到javascript文件。因此,这个错误实际上是正确的。

index.html中的index.html更改为<base href="/app/">部分解决了这个问题,因为它现在知道在我放置它们的应用文件夹中查找文件,但是重新加载停止工作(因为url是错误的)。

我的解决方案是将角构建的输出文件夹设置为asp net核心项目中/wwwroot/的根。现在一切都成功了。

票数 4
EN

Stack Overflow用户

发布于 2022-07-14 12:49:12

Emad的评论是完全正确的。我花了两天时间在.net 6主机上修改.net,用remoteEntry.js做了一个角度Webpack Mfe:

未能加载模块脚本:需要一个JavaScript模块脚本,但服务器响应时使用了MIME类型的"text/html“。根据HTML规范,对模块脚本实施严格的MIME类型检查。main.js:1 polyfills.js:1

这是index.html的尾声。应该只有/app。

谢谢你,Emad!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59912920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档