当Laravel Webpack/Mix执行SASS并将其转换为CSS时,它会更改相关路径,如 url('../images/background.png'); 到绝对路径,如 url('/images/background.png'); .
url('../images/background.png');
url('/images/background.png');
路径是否可能没有更新并保持相对?
原因是部署可能位于不同服务器上的不同文件夹中,因此相对路径将适用于所有文件夹结构。E、 g.它将在 http://www.example.com/ 以及 http://www.example.com/subfolder/ . 但是如果使用了绝对路径,那么对于子文件夹,CSS将找不到图像和字体。
http://www.example.com/
http://www.example.com/subfolder/
是否有其他最佳做法来处理这种情况?
从…起 the docs :
默认情况下,Laravel Mix和Webpack将找到 example.png ,将其复制到 public/images 文件夹,然后重写 url() 在生成的样式表中。因此,您编译的CSS将是。 尽管此功能可能很有用,但您现有的文件夹结构可能已经按照您喜欢的方式进行了配置。如果是这种情况,您可以禁用 url() 这样重写:
默认情况下,Laravel Mix和Webpack将找到 example.png ,将其复制到 public/images 文件夹,然后重写 url() 在生成的样式表中。因此,您编译的CSS将是。
example.png
public/images
url()
尽管此功能可能很有用,但您现有的文件夹结构可能已经按照您喜欢的方式进行了配置。如果是这种情况,您可以禁用 url() 这样重写:
mix.sass('resources/assets/app/app.scss', 'public/css') .options({ processCssUrls: false });
https://laravel.com/docs/5.5/mix#working-with-stylesheets