从Flask运行NPM构建

我有一个React前端,我想与我的python后端API源于同一来源。我正在尝试为此使用Flask,但是Flask找不到我的静态文件时遇到了问题。

我的前端版本是通过npm run buildin 生成的saas_frontend

这是我的文件结构:

    ├── main.py

├── requirements.txt

├── run.sh

├── saas_backend

├── saas_frontend

Flask从以下位置运行main.py并服务于我的前端saas_frontend/build

├── asset-manifest.json

├── favicon.ico

├── index.html

├── manifest.json

├── service-worker.js

└── static

├── css

│   ├── main.096c9e23.css

│   └── main.096c9e23.css.map

├── js

│   ├── main.8949f17a.js

│   └── main.8949f17a.js.map

└── media

├── delta.56f5d855.csv

└── logo.e233ff84.png

我声明了新的模板路径和静态路径,main.py如下所示:

import os

from flask import Flask, render_template

template_dir = os.path.abspath('saas_frontend/build/')

static_dir = os.path.abspath('saas_frontend/build/static')

app = Flask(__name__, static_path=static_dir, template_folder=template_dir)

@app.route('/')

def index():

print template_dir

print static_dir

return render_template('index.html')

但是Flask仍然无法提供我的静态文件,我将其作为输出…。

127.0.0.1 - - [21/Jul/2017 12:13:14] "GET / HTTP/1.1" 200 -

127.0.0.1 - - [21/Jul/2017 12:13:14] "GET /static/css/main.096c9e23.css HTTP/1.1" 404 -

127.0.0.1 - - [21/Jul/2017 12:13:14] "GET /static/js/main.8949f17a.js HTTP/1.1" 404 -

127.0.0.1 - - [21/Jul/2017 12:13:14] "GET /static/css/main.096c9e23.css HTTP/1.1" 404 -

127.0.0.1 - - [21/Jul/2017 12:13:14] "GET /static/js/main.8949f17a.js HTTP/1.1" 404 -

我应该做些不同的事情吗?Flask如何解决错误消息中带有路径的正确文件,但完全无法将其提供给浏览器?

谢谢!!

回答:

我通过使用指向适当文件和目录的符号链接解决了我的问题。

在我的构建脚本中,我将包括:

ln -s saas_frontend/build/static static

ln -s saas_frontend/build templates

现在一切正常。

以上是 从Flask运行NPM构建 的全部内容, 来源链接: utcz.com/qa/418234.html

回到顶部