Когда запускаю сборку webpack локально для фронтенда то все работает и фотки собираются.
const ExtractTextPlugin = require('extract-text-webpack-plugin');
var webpack = require('webpack');
var path = require('path');
module.exports = {
context: __dirname,
entry: {
bundle: "./src/index.jsx",
common: "./static/js/common.js",
libs: "./static/js/libs.js",
main_gmaps: "./static/js/main_gmaps.js"
},
output: {
path: __dirname + '/public',
filename: "[name].js",
publicPath: '/public/'
},
module: {
loaders: [
{
test: /\.js|.jsx?$/,
exclude: /(node_modules)/,
loader: 'babel-loader',
query: {
presets: ['react', 'es2015']
}
},
{
test: /\.(png|jpg)$/,
loader: 'file-loader?name=[path][name].[ext]!extract-loader!html-loader'
},
{
test: /\.sass$/,
loader: ExtractTextPlugin.extract('css-loader!resolve-url-loader!sass-loader?sourceMap')
}
]
},
resolve: {
extensions: ['.js', '.jsx'],
},
plugins: [
new ExtractTextPlugin({ filename: 'app.css', allChunks: true }),
new webpack.HotModuleReplacementPlugin()
],
devServer: {
hot: true,
historyApiFallback: true,
contentBase: './'
}
};
Но когда перехожу на серверную разработку то практически тот же самый код не собирает фотки.
Вот код webpack.config.dev.js:
var path = require('path');
var webpack = require('webpack');
module.exports = {
context: __dirname,
entry: "./src/index.jsx",
output: {
path: path.resolve(__dirname, 'public/'),
filename: "bundle.js",
publicPath: '/public/'
},
module: {
loaders: [
{
test: /\.js|.jsx?$/,
exclude: /(node_modules)/,
loader: 'babel-loader',
query: {
presets: ['react', 'es2015']
}
},
{
test: /\.(gif|png|jpe?g|svg)$/i,
use: [
'file-loader',
{
loader: 'image-webpack-loader',
options: {
bypassOnDebug: true,
},
},
],
},
{
test: /\.sass$/,
loader: 'style-loader!css-loader!resolve-url-loader!sass-loader?sourceMap'
}
]
},
resolve: {
extensions: ['.js', '.jsx'],
},
plugins: [
new webpack.HotModuleReplacementPlugin()
],
devServer: {
historyApiFallback: true,
contentBase: './'
}
};
и код server.js который собственно и запускаю:
var path = require('path');
var bodyParser = require('body-parser');
var express = require('express');
var webpack = require('webpack');
var config = require('./webpack.config.dev.js');
var app = express();
var compiler = webpack(config);
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(require('webpack-dev-middleware')(compiler, {
noInfo: true,
publicPath: config.output.publicPath
}));
app.use(require('webpack-hot-middleware')(compiler));
app.use('/public', express.static('public'));
app.get('*', function(req, res) {
res.sendFile(path.resolve(__dirname, 'index.html'));
})
app.listen(process.env.PORT || 5000, function(err) {
if(err) {
console.log(err);
return;
}
console.log('Listening at http://localhost:5000');
})
Как исправить это? Все подгружает - стили, js но фотки нет.
Виртуальный выделенный сервер (VDS) становится отличным выбором
У меня есть проект React TypeScript ASPNET Core 2