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

Laravel+Vue项目在Nginx下显示空白页问题求助

嘿,我来帮你排查这个问题!既然php artisan serve能正常跑,但Nginx下只有blade的文本能显示,Vue部分空白,大概率是静态资源加载或者Nginx配置的问题,咱们一步步来梳理:

1. 先检查Nginx的站点配置是否正确

这是最容易踩坑的点,Laravel需要Nginx正确把请求转发到index.php,同时要确保静态资源能被直接访问。你可以对照着调整你的Nginx配置文件:

server {
    listen 80;
    server_name your-domain.com; # 换成你的域名或localhost
    root /var/www/your-project/public; # 重点!必须指向Laravel项目的public目录
    index index.php index.html;

    # 处理所有请求,把不存在的路径转发到index.php
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    # 解析PHP文件
    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock; # 换成你的PHP-FPM套接字路径
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    # 让Nginx直接处理静态资源,提升性能同时避免PHP解析
    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        expires 1y;
        add_header Cache-Control "public, immutable";
    }
}

修改完配置后,记得重启Nginx生效:sudo systemctl restart nginx

2. 确认Vue的静态资源路径和构建状态

如果你的项目用的是Laravel 9+默认的Vite构建工具:

  • 先检查vite.config.js里的base配置:如果项目部署在域名根目录,base: '/'就没问题;如果是子目录(比如example.com/laravel),要改成base: '/laravel/'
  • 别忘了运行npm run build生成生产环境的静态资源——Nginx下不能用开发模式的热加载资源,必须用构建后的文件
  • 检查app.blade.php里的资源引入指令是否正确:@vite(['resources/js/app.js'])

如果是旧版用Webpack/Mix的项目:

  • 运行npm run prod构建资源
  • 确保blade里用mix('js/app.js')来引入资源,而不是硬编码的开发路径
3. 检查Vue的路由模式

如果Vue用了history模式(URL里没有#),Nginx必须配置try_files来处理路由跳转,否则直接访问子路由或者刷新页面会空白。前面Nginx配置里的location /块已经包含了try_files $uri $uri/ /index.php?$query_string;,这个配置会把所有不存在的路径转发到index.php,让Laravel或Vue路由来处理,刚好适配history模式。

4. 查看浏览器控制台的错误信息

打开浏览器开发者工具(F12),切换到Console和Network标签:

  • 如果Network里有404错误,说明静态资源路径不对,回头检查Nginx的root配置和资源引入路径
  • 如果Console里有JS报错,比如Vue实例初始化失败,那可能是构建后的JS文件有问题,重新运行npm run build试试
5. 检查文件权限

Laravel的storage和bootstrap/cache目录需要Nginx运行用户(通常是www-data)有读写权限,否则会影响缓存生成和资源加载:

sudo chown -R www-data:www-data /var/www/your-project/storage
sudo chown -R www-data:www-data /var/www/your-project/bootstrap/cache
sudo chmod -R 755 /var/www/your-project/storage
sudo chmod -R 755 /var/www/your-project/bootstrap/cache
6. 清除缓存试试

有时候缓存会搞出奇怪的问题,不妨清一波:

php artisan cache:clear
php artisan config:clear
php artisan route:clear

同时用Ctrl+Shift+R强制刷新浏览器,或者用隐私模式打开页面,排除浏览器缓存的影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 15:17:40