You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 6部署Linux后wwwroot静态资源加载失败求助

解决方案

针对你遇到的.NET Core 6部署到Linux后静态资源404的问题,按以下步骤排查:

  • 检查Linux文件系统的大小写匹配
    Linux是大小写敏感的,而Windows不是。确认你的wwwroot/xyz/jss文件夹及其中的js文件名,和Layout中引用的路径完全一致(比如不能存在文件夹是XYZ但引用写xyz,或者文件名是jQuery-3.6.0.js但引用写jquery-3.6.0.js的情况)。
    可以在Linux服务器上执行命令查看实际路径:

    ls -l /path/to/your/application/wwwroot/xyz/jss
    

    对比输出的文件名和你引用的是否完全一致。

  • 确认静态文件中间件的顺序
    Program.cs中app.UseStaticFiles();的位置必须正确,中间件顺序错误会导致静态文件请求被拦截。正确的请求管道顺序应该是:

    app.UseHttpsRedirection();
    app.UseStaticFiles(); // 必须在UseRouting和UseAuthorization之前
    app.UseRouting();
    app.UseAuthorization();
    app.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
    

    确保UseStaticFiles在UseRouting之前,这样静态文件请求会被优先处理,不会走路由匹配。

  • 验证静态文件是否被正确发布
    检查Linux服务器上的wwwroot/xyz/jss目录下是否真的存在这些js文件。有时候项目中文件的“复制到输出目录”属性未正确设置,导致发布时文件未被包含。
    在Visual Studio中,选中wwwroot下的js文件,右键→属性,将“复制到输出目录”设置为如果较新则复制或始终复制,重新发布后再部署到Linux。

  • 检查文件权限
    Linux下应用进程需要有读取静态文件的权限。如果文件或文件夹的权限不足,会导致404错误。执行以下命令修复权限:

    # 设置文件夹和文件的读取权限
    chmod -R 755 /path/to/your/application/wwwroot
    # 或者修改文件所有者为应用运行用户(比如www-data)
    chown -R www-data:www-data /path/to/your/application/wwwroot
    

内容的提问来源于stack exchange,提问作者Chandan Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 05:52:46