框架版本: .NET Core 3.1 報錯: 最近在學習MVC模式的NetCore,新建Index.cshtml頁面後引入了js,但是按路徑卻訪問不到對應的文件(404)。 <html lang="zh-cn"> <head> <meta charset="utf-8" /> <title>Ind ...
框架版本:
.NET Core 3.1
報錯:
最近在學習MVC模式的NetCore,新建Index.cshtml頁面後引入了js,但是按路徑卻訪問不到對應的文件(404)。
<html lang="zh-cn"> <head> <meta charset="utf-8" /> <title>Index</title> </head> <body> <p>Hello World!</p> <script type="text/javascript" src="~/js/jquery-3.5.1.min.js"></script> <script type="text/javascript" src="/diyStatics/test.js"></script> </body> </html>Index.cshtml
打開F12能看到:
解決方案:
1.預設路徑
在Startup.cs的Configure方法里啟用靜態資源:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) {
//啟用靜態資源(無參預設wwwroot文件夾) app.UseStaticFiles();
app.UseHttpsRedirection(); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); }
結果:
2.自定義路徑
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) {
//自定義資源 app.UseStaticFiles(new StaticFileOptions { //資源所在的絕對路徑。 FileProvider = new PhysicalFileProvider(System.IO.Path.Combine(Directory.GetCurrentDirectory(), "Statics/js")), //表示訪問路徑,必須'/'開頭 RequestPath = "/diyStatics" });
app.UseHttpsRedirection(); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); }
結果:
總結:
還是得善用官方提供的文檔:ASP.NET Core 中的靜態文件