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

Laravel 9 + Vite开发服务器下CSS绝对URL图片无法加载求助

解决Laravel 9 + Vite开发服务器下绝对URL图片无法加载的问题

问题原因

Vite开发服务器的根目录是项目根目录,而非Laravel的public目录。当你通过http://0.0.0.0:3000/img/...访问图片时,Vite会在项目根目录查找img文件夹,而非public/img,因此返回404。而{my_local}/img/...能正常访问是因为该地址由Laravel服务器提供,其根目录为public。

解决方案一:配置Vite代理请求到Laravel本地服务

通过Vite的代理功能,将/img等public目录下的资源请求转发到Laravel本地服务器:

修改vite.config.js:

export default defineConfig({
    server: {
        host: '0.0.0.0',
        port: 3000,
        open: false,
        proxy: {
            // 代理/img开头的请求到Laravel服务器
            '/img': {
                target: 'http://localhost:8000',
                changeOrigin: true,
            },
            // 若有其他public下的资源路径(如/storage),可按需添加
            '/storage': {
                target: 'http://localhost:8000',
                changeOrigin: true,
            }
        }
    },
    plugins: [
        vue(),
        laravel({
            input: [
                'resources/scss/app.scss',
            ],
            refresh: true,
        }),
    ],
});

使用步骤:

  1. 启动Laravel本地服务器:
php artisan serve
  1. 启动Vite开发服务器:
npm run dev

此时访问http://0.0.0.0:3000/img/home/sweets-one.png时,Vite会自动将请求转发到Laravel服务器,即可正常加载图片。

解决方案二:修改CSS路径为相对路径(可选)

若允许调整CSS中的路径,可将绝对路径改为相对于Vite入口文件的路径:

background-image: url('../../public/img/home/sweets-one.png');

这种方式下,Vite会在开发和生产构建时自动处理资源路径,但如果需要保持绝对URL的话,建议优先使用方案一。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 08:22:17