Laravel 5 正在加载旧的 CSS

Posted

技术标签:

【中文标题】Laravel 5 正在加载旧的 CSS【英文标题】:Laravel 5 is loading old css 【发布时间】:2017-04-30 20:35:39 【问题描述】:

我正在编辑位于 resources\assets\sass\app.css 中的 css,然后我运行 gulp watch 但似乎 laravel 忽略了我在 css 中所做的更改。

我尝试直接在 public\css\app.css 中编辑 css,但是当我在浏览器中查看我的页面时,样式仍然不起作用。

例如,我的页面背景颜色是白色的,但我将其更改为红色,我的页面在浏览器中的背景仍然是白色的。

当我在浏览器中尝试查看源代码并单击 ,背景颜色:#fff;

希望你明白我的意思。你对此有什么想法吗?

【问题讨论】:

您是否尝试过清除浏览器缓存并重新加载页面? refreshyourcache.com/en/home 清除浏览器缓存并重新加载页面。 【参考方案1】:

您应该清除所有缓存。首先,清除视图缓存:

php artisan view:clear
php artisan cache:clear

然后清除浏览器缓存并重新加载页面。

【讨论】:

【参考方案2】:

您应该通过 Laravel mix 中的版本控制来使用“cache busting”功能,以便为每个保存的新 .css 文件配置一个唯一的 ID。这样,所做的每一项更改都会强制浏览器获取最新版本的 css 文件。你甚至不需要硬刷新!

真的很容易实现。只需将version() 添加到您的组合中:

mix.js('resources/js/app.js', 'public/js')
  .version();

然后使用 mix() 而不是 asset() 来引用您的 .js 或 .css 资产。

<script src=" mix('/js/app.js') "></script>

如果您在本地看到 css 缓存问题,那么对于您的网站用户来说,情况只会更糟,他们最终可能会看到各种过期/同步 css 文件的问题。

这是这个问题的解决方案,每个人都应该在生产环境中使用它。

【讨论】:

这是我在任何地方看到的对该功能最清晰、最简单的描述。在现有的 Laravel 项目上实施此更改只需几分钟。这对我们的测试环境也非常有用,这样我们的 QA 和业务审批用户就不会因为过时的 js 和 css 文件而出现幻像问题。【参考方案3】:

尝试进行硬刷新Ctrl + F5 在 Windows 上我猜,在 Mac 上是 Cmd+Shift+R

【讨论】:

Ctrl + Shift + R 也适用于 windows。【参考方案4】:

您还可以使用 composer 刷新自动加载的文件并清除缓存。从项目根目录运行:

composer dump-autoload

composer clear-cache

这应该会删除您的旧 css 文件

【讨论】:

如果你对旧编译的 php 文件有问题,你也可以运行:php artisan clear-compiled

以上是关于Laravel 5 正在加载旧的 CSS的主要内容,如果未能解决你的问题,请参考以下文章

刀片视图未反映更改

laravel 验证失败后显示旧的帖子数据

Laravel Composer 看到错误的 PHP 版本

Laravel 5.4 - 如何在 javascript 加载之前使 @section 屈服

使用内置的 Laravel 5.2 身份验证并加载 SPA,然后为所有其他路由加载 Dingo API

Laravel 5 CORS - XMLHttpRequest 无法加载 http://myapi.com。预检响应具有无效的 HTTP 状态代码 500