Не удается отобразить фоновое изображение в узле JS - PullRequest
0 голосов
/ 07 ноября 2018

Я создаю простую веб-страницу для теста, который я должен сделать, используя сервер node.js. Я могу легко включить изображение через SRC, как это:

<img src="assets/young-woman.jpg">

Однако, когда я пытаюсь сделать это:

style="background-image: url(assets/young-woman.jpg);"

... это не работает.

Я пытался следовать различным решениям этой проблемы, таким как: https://github.com/webpack-contrib/css-loader/issues/256 и этот Webpack - фоновые изображения не загружаются , но ни одно из решений не работает для меня.

Он также отлично работает, если я делаю это через CSS, например:

.element {
    background-image: url(../assets/young-woman.jpg);
}

Очевидно, что-то не так с моим файлом webpack.config?

const HtmlWebpackPlugin = require('html-webpack-plugin');
const CleanWebpackPlugin = require('clean-webpack-plugin');
const ExtractTextPlugin = require("extract-text-webpack-plugin");
const webpack = require('webpack');
const path = require('path');

module.exports = {
    entry: {
        app: './src/index.js',
    },
    devServer: {
        contentBase: './dist'
    },
    devtool: "source-map",
    module: {
        rules: [
            {
                test: /\.scss$/,
                use: ExtractTextPlugin.extract({
                    fallback: 'style-loader',
                    use: [{
                        loader: "css-loader", options: {
                            sourceMap: true
                        }
                    }, {
                        loader: "sass-loader", options: {
                            sourceMap: true
                        }
                    }],
                    publicPath: '../',
                })
            },
            {
                test: /\.(png|jp(e*)g|gif)$/,
                use: [{
                    loader: 'file-loader',
                    options: {
                        name: '[name].[ext]',
                        outputPath: 'img/'
                    }
                }]
            },
            {
                test: /\.(html)$/,
                use: {
                    loader: 'html-loader',
                    options: {
                        attrs: [':src']
                    }
                }
            },
            {
                test: /\.js$/,
                exclude: /(node_modules|bower_components)/,
                use: {
                    loader: 'babel-loader',
                    options: {
                        presets: ['env']
                    }
                }
            }
        ]
    },
    plugins: [
        new ExtractTextPlugin({
            filename: "css/[name].[contenthash].css",
        }),
        new CleanWebpackPlugin(['dist']),
        new HtmlWebpackPlugin({
            template: 'src/index.html',
            inject: 'body',
            filename: 'index.html'
        }),
        new webpack.ProvidePlugin({
            $: 'jquery',
            jQuery: 'jquery',
            'window.jQuery': 'jquery',
            Popper: ['popper.js', 'default'],
            Util: "exports-loader?Util!bootstrap/js/dist/util",
            Dropdown: "exports-loader?Dropdown!bootstrap/js/dist/dropdown",
        })
    ],
    output: {
        filename: '[name].js',
        path: path.resolve(__dirname, 'dist'),
        publicPath: ''
    }
}

Когда я пытаюсь загрузить ресурсы в браузере, я просто получаю Cannot GET /assets/young-woman.jpg

Я попытался установить Express, но это также не работает для меня, и я получаю сообщение об ошибке fs . Я не могу думать об этом. Возможно, это проблема с моей настройкой?

Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...