我真的要疯了。我正在开发一个React/Node+Express
应用程序,但我从未想过像从中加载图像这样简单的操作sass
会如此复杂。
在我的根目录中,我有main.jsx
,index.html
和 2 个文件夹:“ public
”(包括css/js/img
)和“ components
”,其中包含header.jsx
和其他。现在,我想在我的header.jsx
组件中加载背景图片
头文件.jsx
import React from 'react'
require('../public/css/header.scss')
export default class Header extends React.Component {
render() {
return <header></header>
}
}
为此,我将 mywebpack 配置为加载 sass:
webpack.config.js
var ExtractTextPlugin = require('extract-text-webpack-plugin');
module.exports = {
entry: './main.jsx',
output: {
filename: './public/js/build/bundle.js'
},
module: {
loaders: [
{
test: /\.jsx?$/,
exclude: /(node_modules|bower_components)/,
loader: 'babel',
query: {
presets: ['react', 'es2015']
}
},
{
test: /\.scss$/,
loader: ExtractTextPlugin.extract('css!sass')
},
{
test: /\.jpg$/,
loader: "file-loader?name=[path][name].[ext]"
}
]
},
plugins: [
new ExtractTextPlugin('public/css/style.css', {
allChunks: true
})
]
};
那么,我的header.scss
头文件.scss
header {
background-image: url('/public/img/header-bg.jpg');
}
要从我的节点服务器加载静态文件,我已经配置了我的文件夹:
服务器.js
app.use(express.static(__dirname + '/public'));
在我的console
我得到这个错误:http://localhost:3000/public/img/header-bg.jpg 404 (Not Found)
。我真的无法理解这个如此基本的配置有什么问题。