如何使用 vuejs 强制刷新我的 spa 网站 - laravel
How can I force a refresh in my spa website with vuejs - laravel
嗨,我知道有人说过,但我已经尝试了一切,但没有任何效果..所以我又来这里一次,问一个最终的或解决当我做一些改变时存在的大问题的方法,用户看不到这些更改我将向您展示我的尝试。
我在 webpack.mix 中添加了 version() ,如下所示:
const mix = require('laravel-mix');
const tailwindcss = require('tailwindcss');
require('laravel-mix-purgecss');
mix.js('resources/js/app.js', 'public/js')
.version()
.sass('resources/sass/app.scss', 'public/css')
.options({
processCssUrls: false,
postCss: [ tailwindcss('./tailwind.config.js') ],
}) .purgeCss();
我在布局中添加了这个:
我有两个布局,一个在前端,另一个在后端,所以它们是这样组织的:
views>backend>layouts to the backend
views>layouts to the frontend
这两个我都有:
<link href="{{ mix('css/app.css') }}" rel="stylesheet">
<script src="{{ mix('js/app.js') }}" defer></script>
你怎么看我通过混合改变资产
每次我进行更改时,我都会更新 package.json
中的版本
{
"version": "0.1.2",
"private": true,
我在两种布局中都添加了这个:
<meta http-equiv="Cache-Control" content="no-cache" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="expires" content="Fri, 18 Jul 2014 1:00:00 GMT" />
而且我不知道为什么我上传了一个更改和用户,他们看起来是旧版本的页面,即使他们从浏览器中退出并再次进入他们看到的是旧版本,或者他们看起来网站的某些部分是空白的,但如果它们在浏览器中显示为未知,则可以看到该网站正在运行。我必须按 CTRL+SHIFT+R 进行硬刷新,它有时会起作用,F5 根本不起作用他们看起来仍然是旧网站...如果问题出在 phone 他们必须删除缓存查看新版本的网站...
所以我想知道,我真的很绝望,因为我读了又读,我已经尝试了所有方法,但没有任何效果..我该如何解决我遇到的这个大问题...用户如何看到新网站自动运行时我上传改了吗?谢谢
首先,如果您可以分享您的 HTML 输出,它会很有用。
Laravel mix 已生成如下链接。检查您的 html 输出是否正确生成了这样的链接。
<script src="/js/app.js?id=0441ad4f65d54589aea5"></script>
您的 /public/mix-manifest.json
文件必须如下所示;
{
"/js/app.js": "/js/app.js?id=7399f803fb3a155486e9",
"/css/app.css": "/css/app.css?id=6bea0cea688d689be1b1"
}
如果不是这样一个好像是这样;
{
"/js/app.js": "/js/app.js",
"/css/app.css": "/css/app.css"
}
您的 webpack.mix
文件有误。
尝试仅在生产环境中对资产进行版本控制;
if (mix.inProduction()) {
mix.version();
}
和 运行 npm run prod
部署前。
嗨,我知道有人说过,但我已经尝试了一切,但没有任何效果..所以我又来这里一次,问一个最终的或解决当我做一些改变时存在的大问题的方法,用户看不到这些更改我将向您展示我的尝试。
我在 webpack.mix 中添加了 version() ,如下所示:
const mix = require('laravel-mix'); const tailwindcss = require('tailwindcss'); require('laravel-mix-purgecss'); mix.js('resources/js/app.js', 'public/js') .version() .sass('resources/sass/app.scss', 'public/css') .options({ processCssUrls: false, postCss: [ tailwindcss('./tailwind.config.js') ], }) .purgeCss();
我在布局中添加了这个:
我有两个布局,一个在前端,另一个在后端,所以它们是这样组织的:
views>backend>layouts to the backend
views>layouts to the frontend
这两个我都有:
<link href="{{ mix('css/app.css') }}" rel="stylesheet">
<script src="{{ mix('js/app.js') }}" defer></script>
你怎么看我通过混合改变资产
每次我进行更改时,我都会更新 package.json
中的版本{ "version": "0.1.2", "private": true,
我在两种布局中都添加了这个:
<meta http-equiv="Cache-Control" content="no-cache" /> <meta http-equiv="Pragma" content="no-cache" /> <meta http-equiv="expires" content="Fri, 18 Jul 2014 1:00:00 GMT" />
而且我不知道为什么我上传了一个更改和用户,他们看起来是旧版本的页面,即使他们从浏览器中退出并再次进入他们看到的是旧版本,或者他们看起来网站的某些部分是空白的,但如果它们在浏览器中显示为未知,则可以看到该网站正在运行。我必须按 CTRL+SHIFT+R 进行硬刷新,它有时会起作用,F5 根本不起作用他们看起来仍然是旧网站...如果问题出在 phone 他们必须删除缓存查看新版本的网站...
所以我想知道,我真的很绝望,因为我读了又读,我已经尝试了所有方法,但没有任何效果..我该如何解决我遇到的这个大问题...用户如何看到新网站自动运行时我上传改了吗?谢谢
首先,如果您可以分享您的 HTML 输出,它会很有用。
Laravel mix 已生成如下链接。检查您的 html 输出是否正确生成了这样的链接。
<script src="/js/app.js?id=0441ad4f65d54589aea5"></script>
您的 /public/mix-manifest.json
文件必须如下所示;
{
"/js/app.js": "/js/app.js?id=7399f803fb3a155486e9",
"/css/app.css": "/css/app.css?id=6bea0cea688d689be1b1"
}
如果不是这样一个好像是这样;
{
"/js/app.js": "/js/app.js",
"/css/app.css": "/css/app.css"
}
您的 webpack.mix
文件有误。
尝试仅在生产环境中对资产进行版本控制;
if (mix.inProduction()) {
mix.version();
}
和 运行 npm run prod
部署前。