Невозможно получить доступ к bundle.js, когда url имеет несколько уровней - PullRequest
0 голосов
/ 05 сентября 2018

bundle.js работает на localhost:3000/abc (потому что он смотрит в папку localhost:3000/assets), но если перейти к localhost:3000/abc/xyz, я получу 404 (потому что он смотрит в папку localhost:3000/abc/assets).

Мой webpack.config.js

var webpack = require("webpack");
var path = require('path')
module.exports = {
    entry: "./src/index.js",
    output: {
        path: path.join(__dirname, '/dist'),
        filename: "bundle.js",
        publicPath: "/assets/",
    },
    devServer: {
        inline: true,
        contentBase: "./dist",
        port: 3000,
        historyApiFallback: true,
    },
    module: {
        rules: [
            {
                test: /\.js$/,
                exclude: /(node_modules)/,
                loader: "babel-loader",
                query: {
                    presets: ["@babel/preset-env", "@babel/preset-react"] 
                }
            },
            {
                type: 'javascript/auto',
                test: /\.html/,
                exclude: /(node_modules)/,
            },
            {
                test: /\.css$/,
                use:['style-loader','css-loader']
            },
            {
                test: /\.scss$/,
                use:['style-loader','css-loader', 'sass-loader']
            }
        ]
    }
}

Я не могу использовать абсолютный путь для publicPath. Как я могу получить доступ к bundle.js, если у меня несколько уровней?

1 Ответ

0 голосов
/ 06 сентября 2018

В index.html у меня было

<script type="text/javascript" src="./assets/bundle.js"></script>

Все, что мне нужно было сделать, это изменить его на

<script type="text/javascript" src="/assets/bundle.js"></script>
...