Flask+vue打包静态资源后显示空白及static文件路径报错

使用flask+vue做前后端分离:

先做vue前端工程,参考菜鸟教程安装好vue并运行helloworld的页面;

Flask+vue打包静态资源后显示空白及static文件路径报错

然后打包前端代码:

npm run build

会得到的前端文件如下

Flask+vue打包静态资源后显示空白及static文件路径报错

到此前端就准备好了。

接下来是准备flask,参考官网文档安装好flask,并启动一个最小应用,

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

运行后在浏览器中打开 http://127.0.0.1:5000/ ,应该可以看到 Hello World! 字样。

这时flask也准备好了。

那怎么把flask 和vue结合呢

使用 render_template 方法 让flask返回 index.html页面;

@app.route('/')
def index():
    return render_template("index.html")

但这时在浏览器中打开 http://127.0.0.1:5000/ 会报404找不到页面,就是找不到html页面;

因为flask必需要指定html文件所在的目录,假如flask与vue的目录如下:

hello.py
web\
    dist\
        css\
            xxx.css
        img\
            xxx.jpg
        js\
            xxx.js
        index.html

那么要用template_folder来指定html文件的路径:

app = Flask(__name__,
            template_folder="./web/dist")

这时在浏览器中打开 http://127.0.0.1:5000/ 可以打开了,但是页面是空白,提示找不到css,js文件:

 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [09/Jan/2021 11:05:50] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [09/Jan/2021 11:05:50] "GET /css/app.5154eb61.css HTTP/1.1" 404 -
127.0.0.1 - - [09/Jan/2021 11:05:50] "GET /js/chunk-vendors.95447de0.js HTTP/1.1" 404 -
127.0.0.1 - - [09/Jan/2021 11:05:50] "GET /js/app.f6a69152.js HTTP/1.1" 404 -
127.0.0.1 - - [09/Jan/2021 11:05:50] "GET /js/about.ad69abb4.js HTTP/1.1" 404 -

这时还需要为css,js文件指定目录,要用到static_folder+static_url_path来指定静态文件的目录:

from flask import Flask
from flask import render_template

app = Flask(__name__,
            template_folder="./web/dist",
            static_folder="./web/dist",
            static_url_path="")

@app.route('/')
def index():
    return render_template("index.html")

这时在浏览器中打开 http://127.0.0.1:5000/ 就可以打开页面了。

Original: https://blog.csdn.net/zucheng10/article/details/112388652
Author: zucheng10
Title: Flask+vue打包静态资源后显示空白及static文件路径报错

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/749323/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球