Laravel 10生产环境Vite未用HTTPS导致资源加载失败的问题咨询
Laravel 10 + Vite生产环境HTTPS资源加载问题解决指南
一、优先配置环境变量
生产环境下,Vite生成资源URL依赖Laravel的APP_URL环境变量,第一步要确保.env文件里的地址是HTTPS:
APP_URL=https://你的域名.com
配置完成后必须运行php artisan config:cache,让Laravel加载新的配置,避免读取缓存的旧HTTP地址。
二、调整Vite配置(备选方案)
如果APP_URL配置后资源还是HTTP,可以在vite.config.js中手动指定base路径,强制使用HTTPS:
import { defineConfig } from 'vite'; import laravel from 'laravel-vite-plugin'; export default defineConfig({ plugins: [ laravel({ input: ['resources/css/app.css', 'resources/js/app.js'], refresh: true, // 手动指定HTTPS的资源基础路径 base: 'https://你的域名.com/build/', }), ], server: { host: true, hmr: { host: 'localhost' } }, });
注:Laravel Vite插件默认会读取APP_URL生成资源地址,优先保证环境变量正确,此步骤仅作为备选。
三、检查Laravel核心配置
确认config/app.php中的url项是从环境变量获取的,避免硬编码HTTP:
'url' => env('APP_URL', 'http://localhost'),
如果这里写死了HTTP地址,会直接覆盖.env的配置。
四、服务器反向代理协议识别
如果应用部署在反向代理(如Nginx)后面,Laravel可能无法识别真实请求协议,导致生成HTTP资源URL。
Nginx配置示例
在站点配置中添加以下请求头:
location / { # 其他原有配置 proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; }
Laravel信任代理配置
发布信任代理配置文件:
php artisan vendor:publish --provider="Fideloper\Proxy\TrustedProxyServiceProvider"
然后在config/trustedproxy.php中添加代理服务器IP到信任列表:
'proxies' => [ '127.0.0.1', // 你的代理服务器公网IP ],
五、其他排查方向
- 浏览器缓存:强制刷新页面(Ctrl+F5)或清除浏览器缓存,避免加载旧的HTTP资源链接。
- 构建缓存:删除
public/build目录和storage/framework/cache/data下的缓存文件,重新运行npm run build。 - CDN配置:如果使用CDN,确保CDN的资源地址是HTTPS,且缓存已更新。
内容的提问来源于stack exchange,提问作者C. Leo
相关产品推荐
相关产品推荐

