Я пишу приложение для реагирования, и все работает нормально, когда я перехожу на localhost:3000
, но когда я пытаюсь перейти на localhost:3000/foo/page
, я получаю сообщение об ошибке, которое сообщает мне localhost: 3000 /foo/bundle.js нельзя загрузить.Webpack загружается с неправильного URL-адреса при изменении пути
Для меня это похоже на проблему с Webpack, которая выглядит не в том месте для bundle.js, но я не уверен. Как я могу заставить приложение всегда смотреть на localhost:3000
для bundle.js?
Это часть моей конфигурации веб-пакета.
var TARGET = process.env.npm_lifecycle_event;
var ROOT_PATH = path.resolve(__dirname);
var APP_PATH = path.resolve(ROOT_PATH, 'app');
var BUILD_PATH = path.resolve(ROOT_PATH, 'dist');
process.env.BABEL_ENV = TARGET;
var common = {
entry: APP_PATH,
output: {
path: BUILD_PATH,
filename: 'bundle.js'
},
module: {
loaders: [
{
test: /\.jsx?$/,
loaders: ['babel'],
include: APP_PATH
},
{
test: /\.svg$/,
loader: 'url-loader?limit=8192',
include: APP_PATH
},
{
test: /\.png$/,
loader: 'url-loader?limit=8192',
include: APP_PATH
},
{
test: /\.ico$/,
loader: 'url-loader?limit=8192',
include: APP_PATH
}
]
},
plugins: [
new HtmlWebpackPlugin({
title: 'foobar',
template: path.resolve(APP_PATH, 'index.html'),
favicon: path.resolve(APP_PATH, 'images', 'favicon.ico')
})
]
};
if (TARGET === 'start' || !TARGET) {
module.exports = merge(common, {
devtool: 'eval-source-map',
module: {
loaders: [
{
test: /\.scss$/,
loaders: ['style', 'css', 'sass'],
include: APP_PATH
}
]
},
devServer: {
historyApiFallback: true,
hot: true,
inline: true,
port: 3000,
progress: true
},
plugins: [
new webpack.HotModuleReplacementPlugin()
]
});
}
Подумайте, есть ли опечатка в * publicPath = '/' * должно быть publicPath: '/' –
Кстати, спасибо кучу. Это была проблема, с которой я столкнулся. publicPath должен быть настроен для того, чтобы требовать работу. –
@JoseA обновлен. Спасибо, что заметили! Не переживай дружище! – Kocur4d