У меня есть 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?
Спасибо!