为什么angular项目中的javascript文件没有被标识为javascript?
我一直在将Angular 7项目集成到ASP.NET核心MVC项目中,但最近遇到了一个问题。在测试解决方案时,我遇到了一个问题,Edge给出了一个HTTP404错误。在Firefox上测试时,Javascript控制台发出警告消息,读取的为什么angular项目中的javascript文件没有被标识为javascript?,angular,asp.net-core,angular7,Angular,Asp.net Core,Angular7,我一直在将Angular 7项目集成到ASP.NET核心MVC项目中,但最近遇到了一个问题。在测试解决方案时,我遇到了一个问题,Edge给出了一个HTTP404错误。在Firefox上测试时,Javascript控制台发出警告消息,读取的Javascript文件被标识为HTML文件。 我所做的唯一操作是构建Angular项目,将Angular项目复制到ASP.NET核心项目的子文件夹中,然后将构建的文件添加到razor文件中。razor文件: @{ ViewData["Titl
Javascript文件被标识为HTML文件。
我所做的唯一操作是构建Angular项目,将Angular项目复制到ASP.NET核心项目的子文件夹中,然后将构建的文件添加到razor文件中。razor文件:
@{
ViewData["Title"] = "Home Page";
}
<h1>This is the Index page</h1>
@section Scripts{
<script src="~/ClientApp/dist/frontend/runtime.js"></script>
<script src="~/ClientApp/dist/frontend/polyfills.js"></script>
<script src="~/ClientApp/dist/frontend/styles.js"></script>
<script src="~/ClientApp/dist/frontend/vendor.js"></script>
<script src="~/ClientApp/dist/frontend/main.js"></script>
}
@{
ViewData[“Title”]=“主页”;
}
这是索引页
@节脚本{
}
有人能解释一下我哪里出了问题吗?也许你需要在web.config上这样做:
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="angular-application" stopProcessing="true">
<match url="angular-application/(.*)" />
<action type="Rewrite" url="ClientApp/dist/frontend/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
<configuration>
@section Scripts{
<script src="angular-application/runtime.js"></script>
<script src="angular-application/polyfills.js"></script>
<script src="angular-application/styles.js"></script>
<script src="angular-application/vendor.js"></script>
<script src="angular-application/main.js"></script>
}
然后像这样导入:
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="angular-application" stopProcessing="true">
<match url="angular-application/(.*)" />
<action type="Rewrite" url="ClientApp/dist/frontend/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
<configuration>
@section Scripts{
<script src="angular-application/runtime.js"></script>
<script src="angular-application/polyfills.js"></script>
<script src="angular-application/styles.js"></script>
<script src="angular-application/vendor.js"></script>
<script src="angular-application/main.js"></script>
}
@节脚本{
}
如果您想访问wwwroot
之外的文件夹,假设ClientApp
文件夹,您需要在启动时配置app.UseStaticFiles()
:
public void Configure(IApplicationBuilder app)
{
app.UseStaticFiles(); // For the wwwroot folder
app.UseFileServer(new FileServerOptions
{
FileProvider = new PhysicalFileProvider(
Path.Combine(Directory.GetCurrentDirectory(), "ClientApp")),
RequestPath = "/ClientApp",
EnableDirectoryBrowsing = true
});
}
请参阅您是否已将其放入wwwroot文件夹?为什么不在visual studio中使用Angular和ASP.Net Core的内置模板?@TonyNgo ASP.Net Core的Angular模板(截至撰写时)不包括Angular 7或8,我目前正在使用Angular 7。模板主要使用角度6。此外,我想在razor页面中使用Angular,模板没有明确说明这一点。@Boolean asp.net core确实使用webconfig。将web应用部署到服务器时,只需使用默认的webconfig即可。因此,要从主机覆盖webconfig,您可以创建自己的webconfig