【发布时间】:2017-11-02 22:18:06
【问题描述】:
我正在尝试在我设置的简单 Flask 服务器上运行基于反应的网络应用程序。我使用 webpack 来捆绑我所有的前端包。但是,我发现当我运行服务器时,找不到创建的 javascript 文件(bundle.js)。
我的 webpack 配置(webpack.config.js)是:
var webpack = require('webpack');
const path = require('path');
module.exports = {
context: path.join(__dirname, '/src'),
entry: [
'./index.js',
],
output: {
path: path.join(__dirname, '/www'),
filename: 'bundle.js',
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: [
'babel-loader',
],
},
],
},
resolve: {
modules: [
path.join(__dirname, 'node_modules'),
],
},
};
其中 bundle.js 输出到 /www/ 目录。
/www/ 目录中还有我的 index.html 文件:
<html>
<head>
<link rel="stylesheet" href="/static/style.css">
</head>
<body>
<p>HERE</p>
<div id = "image-upload"></div>
<div id = "sudoku_game"></div>
<script src="/bundle.js" ></script>
</body>
</html>
最后。我写的Flask服务器很简单:
from flask import Flask, render_template
app = Flask(__name__, static_folder="../www",
template_folder = "../www")
@app.route("/")
def index():
return render_template("index.html")
if __name__ == "__main__":
app.run()
如您所见,bundle.js 和 index.html 是在同一级别的同一目录中。
当我运行服务器时(使用 python server.py)。 localhost:5000 显示“HERE”,但随后抛出:
GET http://localhost:5000/bundle.js 404 (NOT FOUND)
有趣的是,当我在 Express js 服务器上运行相同的应用程序时,发现 bundle.js 没有问题。我想切换到 Flask 的原因是我有想要在服务器端运行的 python 脚本。
谁能告诉我出了什么问题?我怀疑由于某种原因 bundle.js 从未编译过,但是即使我将它保存到磁盘,服务器也找不到 bundle.js。
供参考,我的目录结构是:
-sud(parent)
-----node_modules
-----server
---------server.py
-----src (has all my react code)
-----www
---------static (has css file)
---------index.html
-----package.json
-----webpack.config.js
【问题讨论】: