【发布时间】:2021-10-10 20:52:15
【问题描述】:
如果我在网址末尾键入 /,我的 Webpack 无法呈现创建的包。
例如 - 这加载正常 http://localhost:3000/sign-up 但这会抛出一个白页 http://localhost:3000/sign-up/。
我没有为我的 Webpack 包设置 publicPath,但如果我确实将 publicPath 设置为 '/',那么它修复了 url 末尾的 / 问题,但它会阻止我的任何图像加载并且图像的文件路径导致为//assets/img/image.png 而不是单个斜杠。
任何帮助将不胜感激。
这是我的 Webpack 配置:
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
module.exports = {
entry: './src/index.js',
devtool: 'inline-source-map',
output: {
// publicPath: '/',
path: path.join(__dirname, '/dist'),
filename: 'index.bundle.js'
},
devServer: {
port: 3000,
watchContentBase: true,
historyApiFallback: true,
proxy: {
"/api": "http://localhost:6000",
}
},
module: {
rules: [
{
test: /\.(js|jsx)$/,
exclude: /nodeModules/,
use: {
loader: 'babel-loader'
}
},
{
test: /\.scss$/,
use: [
'style-loader',
{
loader: 'css-loader',
options: {
modules: {
auto: true,
// localIdentName: "[local]--[hash:base64:5]",
},
},
},
{
loader: 'sass-loader',
options: {
implementation: require("sass")
}
},
{
loader: 'postcss-loader',
options: {
postcssOptions: {
plugins: [
"postcss-preset-env",
"postcss-100vh-fix"
],
},
},
},
]
},
{
test: /\.(jpe?g|png|gif|svg)$/i,
loader: 'file-loader',
options: {
name: '/assets/img/[name].[ext]',
}
},
]
},
plugins: [
new CleanWebpackPlugin(),
new HtmlWebpackPlugin({
template: './src/index.html',
favicon: "./assets/img/developer-filip-favicon.png"
})
],
}
【问题讨论】:
标签: javascript reactjs webpack webpack-4