[英]Webpack and Sass correctly processes background: url() image but then it's not found when used with webpack-dev-server
我正在使用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: url()
由webpack處理,並且在樣式中替換為background-somehash.jpg
,可以通過鍵入http://localhost:8080/background-somehash.jpg
來訪問此文件。 http://localhost:8080/background-somehash.jpg
。 當我使用開發人員工具在樣式背景定義中提供整個URL(包括localhost)時,它也有效...
唯一不起作用的是webpack生成的原始css,它看起來像background: url(background-somehash.jpg)
。 我也嘗試過各種URL一樣./
, ../
, ../../
或./images/
嘗試,如果根被設置在某種程度上有所不同。 我沒有得到的是該文件在根目錄下可用...
編輯:當與extract-text-webpack-plugin
一起使用時,它將樣式提取到單獨的真實styles.css
文件中,它可以正常工作。 問題是為什么當從javascript包提供最終的css時它不起作用?
澄清:一切都被正確引用,圖像可用,當我使用extract-text-webpack-plugin
將css提取到單獨的文件中時,它只是在從bundle.js
完全相同的css時bundle.js
在index.html
引用,如<link href="blob:..." rel="stylesheet">
你應該檢查的事情:
只需刪除圖像並檢查webpack構建是否失敗。 如果是這種情況,那么您的加載程序配置不是問題。
如果請求以404終止:
檢查output.publicPath
(webpack)/ contentBase
(webpack-dev-server)是否指向同一位置。 這是從瀏覽器的角度來看(=沒有絕對文件路徑)
如果您使用的是<base>
-tag,則需要確保它確實正確替換了基本URL。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.