Почему в laravel mix при компиляции scss в css у свойства background-image пропадает нормальная ссылка на изображение?
Я использую laravel mix чтобы верстать. Есть папка исходников src в которой есть папка с изображениями images (src/images). Пишу scss который тоже лежит в этой папке (src/styles/style.scss), так же есть плагин чтобы копировать картинки из каталога ресурсов в публичный каталог:
const mix = require('laravel-mix');
// const SVGSpritemapPlugin = require('svg-spritemap-webpack-plugin');
const CopyWebpackPlugin = require('copy-webpack-plugin');
// const ImageminPlugin = require('imagemin-webpack-plugin').default;
// const imageminMozjpeg = require('imagemin-mozjpeg');
mix.sass('src/styles/style.scss', 'css');
// mix.copyDirectory('src/images', 'images');
mix.setPublicPath('dist');
mix.webpackConfig({
plugins: [
// Копируем картинки из каталога ресурсов в публичный каталог
new CopyWebpackPlugin({
patterns: [
{
from: 'src/images', // Путь относительно каталога с webpack.mix.js
to: 'images', // Путь относительно каталога public/,
globOptions: {
ignore: ["**/icons/**"], // Игнорируем каталог с иконками
},
},
],
}),
// Оптимизируем качество изображений
new ImageminPlugin({
test: /\.(jpe?g|png|gif)$/i,
plugins: [
imageminMozjpeg({
quality: 80,
progressive: true,
}),
],
}),
],
})
Но вся проблема заключается в том что если в папке style.scss указать следующий код:
.header{
background-image: url('../images/main-bg.png');
}
то в style.css он попадает в следующем виде:
.header {
background-image: url(/images/main-bg.png?e0532be9422f411efcfdb846b50d969d);
}
И соответственно не читается и изображение не подставляется, почему так?
Источник: Stack Overflow на русском