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

部署至Vercel后CSS与图片无法加载的问题求助

解决方案

1. 修正vercel.json的路由配置

当前路由规则会把所有请求都重定向到根路径,导致静态资源请求无法被express.static正确处理。修改配置,让静态资源请求优先匹配并直接返回:

{
    "version": 2,
    "builds": [
        {
            "src": "./index.js",
            "use": "@vercel/node"
        }
    ],
    "routes": [
        // 优先匹配CSS、图片等静态资源文件
        {
            "src": "/(.*\\.(css|png|jpg|jpeg|gif|svg))$",
            "dest": "/$1"
        },
        // 其余请求导向根路径
        {
            "src": "/(.*)",
            "dest": "/"
        }
    ]
}

2. 验证静态资源路径

确保HTML中引用静态资源时使用绝对路径,避免相对路径在部署后失效:

<!-- 正确写法 -->
<link rel="stylesheet" href="/css/style.css">
<img src="/images/logo.png" alt="Logo">

<!-- 避免使用相对路径 -->
<!-- <link rel="stylesheet" href="css/style.css"> -->

3. 优化静态资源服务(可选)

让Vercel直接托管public目录下的静态资源,无需通过Node服务器转发,提升加载性能:

{
    "version": 2,
    "builds": [
        {
            "src": "./index.js",
            "use": "@vercel/node"
        },
        // 直接托管public目录的静态文件
        {
            "src": "public/**/*",
            "use": "@vercel/static"
        }
    ],
    "routes": [
        {
            "src": "/(.*\\.(css|png|jpg|jpeg|gif|svg))$",
            "dest": "/public/$1"
        },
        {
            "src": "/(.*)",
            "dest": "/"
        }
    ]
}

4. 确认部署时包含public目录

检查Vercel部署设置,确保没有忽略public目录;同时确认package.json的build命令不会删除或排除该目录。

内容的提问来源于stack exchange,提问作者Bhoami Khona

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 11:35:20