【问题标题】:Running NPM Build from Flask从 Flask 运行 NPM 构建
【发布时间】:2017-07-21 16:27:59
【问题描述】:

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

我的前端构建是在saas_frontend 中使用npm run build 生成的

这是我的文件结构:

    ├── 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如何解析错误信息中带有路径的正确文件,但完全无法将其提供给浏览器?

谢谢!!

【问题讨论】:

  • @A.Haaji 不幸的是,完全相同的错误。

标签: python node.js reactjs flask


【解决方案1】:

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

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

ln -s saas_frontend/build/static static
ln -s saas_frontend/build templates

现在一切正常!

【讨论】:

    猜你喜欢
    • 2018-06-29
    • 2018-11-13
    • 2019-05-08
    • 1970-01-01
    • 1970-01-01
    • 2020-10-31
    • 2020-08-14
    • 2021-02-27
    • 1970-01-01
    相关资源
    最近更新 更多