ile mutlak url() CSS arka plan görüntüleri için yolları çözülemiyor aşağıdaki WebPack yapılandırma (kabaca, bu yazı için basitleştirildi) vardır:WebPack
const rootPublic = path.resolve('./public');
const LOCAL_IDENT_NAME = 'localIdentName=[name]_[local]_[hash:base64:5]';
const CSS_LOADER = `css?sourceMap&${LOCAL_IDENT_NAME}&root=${rootPublic}`;
const SASS_LOADER = 'sass?sourceMap&includePaths[]=' + path.resolve(__dirname, './src/styles');
// ... loaders:
loaders: [
{
test: /\.(jpe?g|png|gif|svg)$/,
loader: 'url-loader?limit=10000&name=[path][name].[ext]'
},
{
test: /\.scss$/,
loader: config.DEVELOPMENT_MODE ? `style!${CSS_LOADER}!autoprefixer!${SASS_LOADER}`
: ExtractTextPlugin.extract('style', `${CSS_LOADER}!autoprefixer!${SASS_LOADER}`)
}, // ...
]
Şimdi bu görüntüler için mükemmel çalışıyor
0: SCSS dosyalarında normalde başvurulan::local
yönergesi kullanırken
.some-static-class {
background: url('/images/bg.png');
}
Ancak değil çalışır
Ve bunun nedeni, CSS yükleyicisi için root
'un tanımlanmasıdır. Ben bir yapı hatası alıyorum: bunun yerine css-yükleyici yapılandırmasındaki root
kaldırırsanız Module not found: Error: Cannot resolve 'file' or 'directory' ./../../../../../../../../images/bg.gif
, o zaman gayet oluşturur ama sonra yol Chrome'un denetçisi doğru "bakar", ama aslında yeni bir sekmede açtığınızda , açıkça doğru çözmez: chrome-devtools://devtools/bundled/"/images/bg.png"
işaret eder.
Sorun, url-loader
yapılandırmasında veya tam olarak ne olup bittiğinden emin değilim.
Farklı bir web paketi yapılandırmasıyla, resol.root, resolve.modulesDirectories, vb. Belirtmek için oyun oynamıştım, ancak herhangi bir etkilenip etkilenmediklerini ya da tamamen yanlış anladığımdan emin değilim. Ayrıca, resolve-url-loader
numaralı telefondan da geldim, ancak ihtiyacım olan şeyin bu olduğundan emin değilim.
Herhangi bir fikrin var mı? MTIA!
Ben Safari'de çalışıyor, ancak Chrome'da şunu not edelim
GÜNCELLEME. Bu yüzden Chrome'a özgü bir hata gibi görünüyor, ancak tüm gelişimlerimizi Safari'de yapmak pratik değil.
Ayrıca, bu sorunu çözdüğünü iddia eden bir stil yükleyici çatal olan vue-style-loader ürününe de rastladım, ancak düzeltmenin yolu, bir haksız çıkarılmış kaçış/unescape yöntemine dayanmaktır.
Bu hayatımı kurtardı, teşekkürler! – cinnaroll45
@ cinnaroll45 alkış! :) – Sergiu