我的static
文件夹中有app
文件夹,那里就是js
,css
,images
等文件夹。
我在模板中这样引用它们:
<script src="/static/js/main.js"></script>
,它在本地工作。但是,当应用发布到生产环境时,我得到了所有静态文件的404。我是Flask的新手,所以我想我在为他们提供错误的服务。
我没有在应用程序中的任何位置将static
文件夹设置为指定的静态文件文件夹-如果它被称为“静态”,是否会自动完成?还是需要在代码中进行设置?
我的项目结构:
app/
├── static/
│ └── js/
| |__ css/
├── templates/
│ └── index.html
└── __init__.py
application.py
application.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
答案 0 :(得分:2)
Flask自动添加一个静态视图,该视图采用相对于$YOUR_APP/static
目录的路径并提供服务。
通常,您将js / css文件包括在模板中,如下所示:
{{ url_for('static', filename='main.js') }}
答案 1 :(得分:0)
解决方案的第一部分是上述Bert的答案,其中描述了如何从模板正确引用资产。
我所缺少的另一部分是:
server = Flask(__name__, static_url_path="", static_folder="static")
而不是以前的事情:
server = Flask(__name__)
添加static_url_path
和static_folder
为我解决了这个问题。