我正在从npm在webpack-dev-server上运行的React应用程序上工作。运行服务器后,我注意到在浏览器控制台中收到以下消息:
“拒绝应用'http://localhost:8080/css/index.css'中的样式,因为它的MIME类型('text / html')不是受支持的样式表MIME类型,并且启用了严格的MIME检查。”
除了名为style.css的自定义css文件之外,我能够获取以下所有资源。当我直接从包含文件夹(而不在本地服务器上运行)运行应用程序时,style.css文件加载没有问题。
我需要在Webpack中使用CSS加载程序吗?
我已经查看了以下帖子,并尝试了所有建议,但无济于事:
Stylesheet not loaded because of MIME-type
在index.html中,我使用以下格式的链接标记:
<link rel="stylesheet" type="text/css" href="css/style.css"
这是我的webpack.config.js文件:
const path = require('path');
const HTMLWebpackPlugin = require('html-webpack-plugin');
module.exports = {
entry: './src/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js'
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: 'babel-loader'
}
]
},
plugins: [
new HTMLWebpackPlugin({
template: './src/index.html', //source
filename: 'index.html' //destination
})
]
}
这是我的项目目录结构:
src
组件
css
任何帮助将不胜感激
答案 0 :(得分:1)
所以事实证明,我需要利用 style-loader和css-loader 。我怀疑问题完全出在webpack-dev-server以及它如何引用样式表。我正在使用webpack 4,以防将来对任何人有帮助。
我的webpack.config.js现在看起来像这样:
const path = require('path');
const HTMLWebpackPlugin = require('html-webpack-plugin');
module.exports = {
entry: './src/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js'
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: 'babel-loader'
},
{
test: /\.css$/,
use: ['style-loader', 'css-loader']
}
]
},
plugins: [
//will automatically inject bundle js into ./dist/index.html
new HTMLWebpackPlugin({
template: './src/index.html', //source
filename: 'index.html' //destination
})
]
}