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]

这是我的灵感:https://laracasts.com/discuss/channels/vue/laravel-vue-files-requiring-hard-refresh-even-when-caching-implemented