我对 Laravel 5.0 相当陌生,但对 PHP 不太熟悉。我一直在使用 Elixir 来编译我的 SASS,从我的资源目录复制图像并通过mix.version
防止缓存的功能。
然而,这对于 CSS、图像和 JavaScript 来说非常有效; Elixir 是否也可以缓存我的 CSS/SASS 中链接的图像?当然,对图像进行版本控制很容易,但是有没有办法调整 CSS 以反映新的文件名?
我发现了这一点:https://github.com/trentearl/gulp-css-url-adjuster https://github.com/trentearl/gulp-css-url-adjuster它允许您将查询参数附加到 CSS 文件中的文件路径,这样问题就解决了一半。如果每次 gulp 运行时能够自动更改查询参数,我会很高兴使用它。
关于如何实现这一目标,或者是否可能,有什么想法吗?
我想这样做的原因是我不断开发我的应用程序,并且我使用经常重新排列的大型精灵表,缓存清除是一个要求,如果它可以在 gulp 运行时自动执行,那将为我节省很多时间和精力。
Thanks
使用@Amo 的答案作为灵感,我最终使用的解决方案是mixin
,它利用了unique_id()
函数生成随机值。这避免了必须定义自定义SASS
函数,所以它更简单,正如@Amelia 指出的那样,也更干净一些。
混音
@mixin background-cache-bust($url) {
background-image: #{'url('} + $url + #{'?v='} + unique_id() + #{')'};
}
Example
.sprite {
@include background-cache-bust('/build/images/common/sprite.png');
}
Result
.sprite {
background-image: "url(/build/images/common/sprite.png?v=u95ab40e0)";
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)