Laravel Vue 项目在初始 运行 仅在生产时出现空白页面,通过硬刷新解决。我怎样才能防止这种情况发生?
Laravel Vue Project gets blank white page on initial run only on production, solved with hard refresh. How can I prevent this?
我正在使用 Laravel 8.6、Vue 3.2 构建网络应用程序,并使用 Laravel Forge 在 AWS 上托管。一切都在本地和分期上运行良好。但是,当我将应用程序部署到生产环境时,有些人最初看到的是空白屏幕。他们在控制台中看不到任何错误。此问题已通过在浏览器上进行硬刷新来解决。但是,当我尝试在本地复制这个问题时,我无法复制它。
本地与暂存和生产之间唯一真正的区别是在生产中,我 运行ning “npm 运行 prod”,运行s “npx mix - -生产”。
这可能是服务器配置错误吗?知道如何解决吗?
感谢任何意见或建议!
可能与生产中的用户拥有您资产的缓存副本有关,如果还没有,您能否添加到您的 webpack.mix.js 文件:
if (mix.inProduction()) {
mix.version();
}
确保用户在部署到生产环境时获得资产的全新副本 (https://laravel.com/docs/9.x/mix#versioning-and-cache-busting )
终于找到答案了
问题是 Laravel Mix 将散列添加到 app.js,但没有将其添加到分块包中。
我需要更改 webpack.mix.js
文件并将 chunkhash 添加到输出中。这确保了分块文件不会被引入 from disk cache
.
例如:
mix.webpackConfig({
...
output: {
chunkFilename: '[name].js?[chunkhash]',
}
})
请注意,我在文件名后添加了 ?[chunkhash]
。
我正在使用 Laravel 8.6、Vue 3.2 构建网络应用程序,并使用 Laravel Forge 在 AWS 上托管。一切都在本地和分期上运行良好。但是,当我将应用程序部署到生产环境时,有些人最初看到的是空白屏幕。他们在控制台中看不到任何错误。此问题已通过在浏览器上进行硬刷新来解决。但是,当我尝试在本地复制这个问题时,我无法复制它。
本地与暂存和生产之间唯一真正的区别是在生产中,我 运行ning “npm 运行 prod”,运行s “npx mix - -生产”。
这可能是服务器配置错误吗?知道如何解决吗?
感谢任何意见或建议!
可能与生产中的用户拥有您资产的缓存副本有关,如果还没有,您能否添加到您的 webpack.mix.js 文件:
if (mix.inProduction()) {
mix.version();
}
确保用户在部署到生产环境时获得资产的全新副本 (https://laravel.com/docs/9.x/mix#versioning-and-cache-busting )
终于找到答案了
问题是 Laravel Mix 将散列添加到 app.js,但没有将其添加到分块包中。
我需要更改 webpack.mix.js
文件并将 chunkhash 添加到输出中。这确保了分块文件不会被引入 from disk cache
.
例如:
mix.webpackConfig({
...
output: {
chunkFilename: '[name].js?[chunkhash]',
}
})
请注意,我在文件名后添加了 ?[chunkhash]
。