gpt4 book ai didi

javascript - extract-text-webpack-plugin 输出的css文件,图片路径不对?

转载 作者:行者123 更新时间:2023-12-03 11:15:46 25 4
gpt4 key购买 nike

当我使用 extract-text-webpack-plugin 将 css 文件输出到文件夹时,图像 url 是错误的,我的 webpack 配置如下:

"use strict";
var path = require('path');
var webpack = require('webpack');

// webpack plugins
var HtmlWebpackPlugin = require('html-webpack-plugin');
var ExtractTextPlugin = require('extract-text-webpack-plugin');


module.exports = {
entry: path.resolve(__dirname, 'app/scripts/main.js'),
output: {
path: path.resolve(__dirname, "build"),
//publicPath: path.resolve(__dirname, "build"),
filename: 'js/[name]-[hash].js'
},
module: {
loaders: [{
test: /\.jsx?$/,
loader: 'babel',
exclude: /(node_modules|bower_components)/,
query: {
presets: ['react', 'es2015']
}
},{
test: /\.scss$/,
exclude: /(node_modules|bower_components)/,
loader: ExtractTextPlugin.extract('style', 'css!sass!postcss')
},{
test: /\.css$/,
exclude: /(node_modules|bower_components)/,
loader: ExtractTextPlugin.extract('style', 'css!postcss')
},{
test: /\.(woff|woff2|svg|eot|ttf)/,
loader: 'url?prefix=font/&limit=10000'
},{
test: /\.(png|jpe?g|gif|svg)$/,
loaders: [
'file?name=images/[name].[ext]',
//'image-webpack'
]
}
]
},

// image handle
// imageWebpackLoader: {
// progressive: true,
// optimizationLevel: 3,
// interlaced: false,
// pngquant: {quality: "65-70", speed: 4}
// },

postcss: [
require('autoprefixer')
],

plugins: [
new webpack.BannerPlugin('This file is created by yugasun'),
new HtmlWebpackPlugin({
title: 'RedChild',
template: __dirname + '/app/template/index.tmpl.html'
}),
new webpack.optimize.OccurenceOrderPlugin(),
new webpack.optimize.UglifyJsPlugin(),
new ExtractTextPlugin('css/[name]-[hash].css')
]
};

我的输出“build”文件夹树是这样的:

.
├── css
│   └── main-72c33a6c0ad73a5a0403.css
├── images
│   ├── arrow.png
| |.....
│   └── wrong_title.png
├── index.html
└── js
└── main-72c33a6c0ad73a5a0403.js

但在我的输出 css 文件中,图像 url 是“images/arrow.png”,我想要的是“../images/arrow.png”。

然后我添加 extract-text-webpack-plugin 选项,如下所示:

改变:

new ExtractTextPlugin('css/[name]-[hash].css')

收件人:

new ExtractTextPlugin('css/[name]-[hash].css', {
publicPath: '../'
})

但参数“publicPath”不起作用,在我的输出 css 文件中,图像 url 仍然是“images/arrow.png”。

我的 package.json 如下所示:

{
"name": "h5-webpack-template",
"version": "1.0.0",
"description": "H5 Develop template.",
"main": "bundle.js",
"scripts": {
"dev": "webpack-dev-server --progress --colors --content-base build --port 8014 --host 0.0.0.0",
"build": "NODE_ENV=production webpack --config ./webpack.production.js --progress"
},
"repository": {
"type": "git",
"url": "git+https://github.com/yugasun/H5%2Bwebpack.git"
},
"keywords": [
"webpack",
"ES6",
"HTML5"
],
"author": "yugasun",
"license": "MIT",
"devDependencies": {
"autoprefixer": "^6.4.0",
"babel-core": "^6.13.2",
"babel-loader": "^6.2.4",
"babel-preset-es2015": "^6.13.2",
"babel-preset-react": "^6.11.1",
"clean-webpack-plugin": "^0.1.10",
"css-loader": "^0.21.0",
"extract-text-webpack-plugin": "^1.0.1",
"file-loader": "^0.8.5",
"html-webpack-plugin": "^2.22.0",
"image-webpack-loader": "^2.0.0",
"imagemin-webpack-plugin": "^1.0.8",
"node-sass": "^3.4.2",
"normalize.css": "^4.2.0",
"postcss-loader": "^0.9.1",
"sass-loader": "^3.1.2",
"style-loader": "^0.13.0",
"url-loader": "^0.5.7",
"webpack": "^1.13.2",
"webpack-dev-server": "^1.15.2",
"webpack-spritesmith": "^0.2.6"
},
"bugs": {
"url": "https://github.com/yugasun/H5%2Bwebpack/issues"
},
"homepage": "https://github.com/yugasun/H5%2Bwebpack#readme",
"dependencies": {
"weui": "^0.4.3"
}
}

最佳答案

你为什么不使用output.publicPath哪个实际上指定了输出文件的公共(public) url?这对我很有效。

关于javascript - extract-text-webpack-plugin 输出的css文件,图片路径不对?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39503037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com