我正在尝试使用react.js和redux开发一个Web应用程序,但我有一点问题。
我有以下Webpack配置:
const path = require('path');
var sassParams = [
'includePaths[]=' + path.resolve(__dirname, './app/styles'),
'includePaths[]=' + path.resolve(__dirname, '../node_modules')
];
module.exports = {
devtool: 'inline-source-map',
entry: {
javascript: "./app/src/index.jsx",
html: "./app/index.html",
},
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'app')
},
resolve: {
extensions: ['', '.js', '.jsx', '.json'],
root: path.resolve(__dirname, './app/src'),
alias: {
images: path.resolve(__dirname, './app/images')
}
},
devServer:{
contentBase: 'app'
},
module: {
loaders: [{
test: /\.jsx?$/,
exclude: /node_modules/,
loaders: ["babel-loader"],
}, {
test: /\.html$/,
loader: "file?name=[name].[ext]",
}, {
test: /\.jpe?g$|\.gif$|\.png$|\.svg$|\.woff$|\.ttf$|\.wav$|\.mp3$/,
loader: 'url-loader?limit=10000&name=images/[name].[ext]'
}, {
test: /\.scss$/,
loader: [
'style-loader',
'css-loader?sourceMap&modules&localIdentName=[name]__[local]___[hash:base64:5]',
'resolve-url',
'postcss-loader',
'sass-loader?' + sassParams.join('&')
].join('!'),
}],
postcss() {
return [autoprefixer, precss];
},
},
};
这是我的文件夹架构:
├── app
│ ├── images
│ │ └── image.png
│ ├── index.html
│ ├── src
│ │ ├── actions
│ │ ├── components
│ │ │ └── Button
│ │ │ │ ├── Button.jsx
│ │ │ │ └── Button.scss
│ │ ├── constants
│ │ ├── containers
│ │ ├── index.jsx
│ │ ├── middleware
│ │ ├── reducers
│ │ └── store
│ └── styles
│ ├── _base.scss
│ ├── _functions.scss
│ ├── _mixins.scss
│ ├── _toolkit.scss
│ ├── _variables.scss
│ └── app.scss
├── node_modules
├── package.json
└── webpack.config.js
Button.jsx:
return (
<button className={style.btn} >
{ children }
</button>
);
Button.scss:
.btn {
background-image: url(/images/image.png);
}
我可以通过我的网络浏览器访问该图片:http://localhost:8080/images/image.png,但是,我不明白为什么我的CSS不...
有什么想法吗?
谢谢!
更新
检查员的风格:
.Button__btn___1lpoP {
background-image: url(/images/image.png);
}
答案 0 :(得分:1)
您需要提供的网址是相对于您的文件的,因此请将其更改为../../../images/image.png