首页 > 解决方案 > 在 Flask 生产环境中提供静态文件

问题描述

我的static文件夹中有文件app夹,这就是我有js,cssimages文件夹的地方。

我在我的模板中这样引用它们:

<script src="/static/js/main.js"></script>

它在本地工作。但是,当应用程序发布到生产环境时,我得到所有静态文件的 404。我是烧瓶的新手,所以我想我的服务是错误的。我没有static在应用程序的任何地方将该文件夹设置为指定的静态文件文件夹 - 如果它被称为“静态”,它是自动完成的,还是我需要在代码中设置它?

我的项目结构:

app/
├── static/
│   └── js/
|   |__ css/
├── templates/
│   └── index.html
└── __init__.py
application.py

应用程序.py:

from app import create_app

application = create_app()

初始化.py:

from flask import Flask
from config import BaseConfig

def create_app():
    server = Flask(__name__)
    server.config.from_object(BaseConfig) # this is just for the secret key
    return server

标签: flask

解决方案


Flask 自动添加一个静态视图,该视图采用相对于$YOUR_APP/static目录的路径并为其提供服务。

通常,您会在模板中包含 js/css 文件,如下所示:

{{ url_for('static', filename='main.js') }}

推荐阅读