Я использую Webpack 2 и webpack-dev-server вместе с загрузчиком Sass, фактическая конфигурация:
{
test: /\.scss/,
loaders: [
"style",
{ loader: "css", query: { modules: false, sourceMap: true } },
{ loader: "resolve-url" },
{ loader: "sass", query: { sourceMap: true } }
]
}
Это работает довольно хорошо, и изображение, указанное в background: url()
, обрабатывается веб-пакетом, а также заменяется в стиле чем-то вроде background-somehash.jpg
, доступ к этому файлу можно получить, набрав http://localhost:8080/background-somehash.jpg
. Это также работает, когда я предоставляю весь URL-адрес (включая локальный хост) в определении фона стиля с помощью инструментов разработчика...
Единственное, что не работает, это исходный css, созданный webpack, который выглядит как background: url(background-somehash.jpg)
. Я также пробовал различные URL-адреса, такие как ./
, ../
, ../../
или ./images/
, чтобы проверить, установлен ли root как-то по-другому. Чего я не понимаю, так это того, что файл легко доступен в корне...
EDIT: При использовании вместе с extract-text-webpack-plugin
, который извлекает стили в отдельный реальный файл styles.css
, он работает просто отлично. Вопрос в том, почему это не работает, когда окончательный css обслуживается из пакета javascript?
ПОЯСНЕНИЕ: Все указано правильно, изображение доступно, все работает, когда я извлекаю css в отдельный файл с помощью extract-text-webpack-plugin
, но не работает, когда тот же самый css обслуживается из bundle.js
, на который затем ссылаются в index.html
нравится <link href="blob:..." rel="stylesheet">
resolve-url
плагин, как в примере... Так что, возможно, это какое-то дерзкое взаимодействие / внутренняя работа, не уверен ... - person tomastrajan   schedule 02.04.2016