とCSSで私は次のWebPACKの設定(大体、それはこの記事のために簡素化されました)があります。の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}`)
}, // ...
]
今これはイメージのため完全に正常に動作します
0:SCSSファイルで正常に参照::local
ディレクティブを使用している場合
.some-static-class {
background: url('/images/bg.png');
}
しかし、それはない作業を行います
そして、私はそれがroot
がCSSローダーのために定義されているからだと思います。 Module not found: Error: Cannot resolve 'file' or 'directory' ./../../../../../../../../images/bg.gif
代わりにroot
をcss-loaderの設定から削除すると、Chromeのインスペクタで正しいパスが作成されますが、実際には新しいタブでリンクを開くと正しく表示されますそれは明らかに正しく解決されないchrome-devtools://devtools/bundled/"/images/bg.png"
を指しています。
問題がurl-loader
の設定であるか、正確には何が起こっているのかわかりません。
私はresolve.root、resolve.modulesDirectoriesなどを指定するために別のwebpack設定で遊んでいましたが、それらが何らかの影響を及ぼしているのか、まったく間違っているのか全くわかりません。私もresolve-url-loader
に出くわしましたが、それが私が必要とするものであれば確信が持てません。
アイデア? MTIA!
UPDATE
私はそれはSafariではなく、Chromeで正常に動作することを、注意してください。だから、Chrome固有のバグのようだが、Safariで私たちのすべての開発を行うことは現実的ではない。
また、この問題を修正すると主張しているスタイルローダーのフォークであるvue-style-loaderも出てきましたが、修正方法は、非推奨のエスケープ/エスケープ解除メソッドに依存しています。
これは私の人生を保存しました、ありがとうございます! – cinnaroll45
@ cinnaroll45よろしく! :) – Sergiu