Сценарий из <url>был загружен, хотя его тип MIME («text / html») не является допустимым JavaScript MIME-типом - PullRequest
0 голосов
/ 07 марта 2020

У меня есть Flask бэкэнд, и моя конфигурация webpack выглядит следующим образом (с удаленным sass / css / babel).

const webpack = require('webpack');
const resolve = require('path').resolve;
const HtmlWebpackPlugin = require('html-webpack-plugin');
const isDevelopment = process.env.NODE_ENV === 'development';

const config = {
    entry: {
        main: __dirname + '/js/index.jsx'
    },
    devtool: 'eval-source-map',
    output:{
        path: resolve('../public'),
        filename: '[name].[chunkhash].js'
    },
    resolve: {
        extensions: ['.js','.jsx','.scss']
    },
     ...etc ...etc ...etc

    plugins: [
        new HtmlWebpackPlugin({
            hash: true,
            inject: false,
            hash: true,
            template: './index.html',
            filename: 'index.html'
        })
    ]
};

module.exports = config;

Когда я выполняю команду webpack-cli webpack --progress -d --config webpack.config.js --watch, index.html создается правильно в ../public, как [name].[chunkhash].js. пример:

<!DOCTYPE html>
<html>
    <head>
    </head>
    <body>
        <div id="app" />
        <script src="main.6e9f93766744ff757148.js?58e0a4a8c99dee0bfe93"></script>
    </body>
</html> 

и в Flask я указываю:

app = Flask(__name__,
 template_folder="./templates/public")

Поэтому, когда вы нажимаете localhost:<port>, он должен отображать application/templates/public/index.html (я занимаюсь разработкой в ​​application/templates/src, затем выполните команду webpack, этот вывод помещается в application/templates/public).

Теперь, когда я наберу flask run, в сети появится следующий вывод:

127.0.0.1 - - [07/Mar/2020 19:40:53] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [07/Mar/2020 19:40:53] "GET /main.6e9f93766744ff757148.js?58e0a4a8c99dee0bfe93 HTTP/1.1" 404 -

и в инструментах разработчика я могу видеть правильный html и ссылку на javascript в ответе.

, но консоль заявляет:

The script from <url>/<file>.js was loaded even though its MIME type (“text/html”) is not a valid JavaScript MIME type.

Так что Flask рендерит правильный html файл, но не может найти javascript. Как я могу получить Flask чтобы найти это javascript?

Спасибо!

1 Ответ

0 голосов
/ 09 марта 2020

Оказывается, это была проблема с Flask, а не с веб-пакетом или чем-то еще. Я указал моей static_folder на static / dist, когда он должен был быть установлен на stati c.

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