我的项目结构如下所示:
/project home
app.py
/templates/index.html
/templates/assets
我的index.html文件中有几个对相关样式表的引用,如下所示:
<link rel="stylesheet" href="assets/css/slick.css">
<link rel="stylesheet" href="assets/css/slick-theme.css">
对于assets/JS中存在的各种JS文件也是如此。现在,当我加载页面时,出现以下错误:
Loading failed for the <script> with source “http://localhost:5000/assets/js/popper.min.js”. localhost:5000:564:1
在python调试器中,我看到了许多这样的消息:
127.0.0.1 - - [24/Dec/2019 18:29:16] "GET /assets/js/main.js HTTP/1.1" 404
我试着用谷歌搜索并在烧瓶里修改这条线
STATIC_URL_PATH = '/templates/assets/' # Where the css is stored
STATIC_FOLDER = '/templates/assets/'
app = flask.Flask(__name__, static_folder=STATIC_FOLDER,
static_url_path=STATIC_URL_PATH)
但当我点击模板中的index.html页面时,它仍然能够很好地加载所有CSS、JS和图像,但是从Flask中,它就像去掉了CSS一样
首先,确保templates文件夹与app.py位于同一目录下:
然后像这样创建Flask实例:
第一,
/templates
和templates
(没有/
)是两条不同的路径。第一个是指系统根路径/
下的templates
文件夹,它肯定不是您想要的。第二个是指同一目录中的templates
文件夹,这是您想要的第二,如果
static_url_path
与static_folder
相同,则无需指定它,因为这是default behavior(“默认为static_folder
文件夹的名称”)然后,在HTML文件中,让Flask为您构建URL,而不是硬编码到assets文件夹的路径。参见烧瓶文档的Static Files部分:
默认情况下,它将在static文件夹下查找静态文件(例如static/style.css),因为它是} parameter 。当您将其设置为templates/assets时,Flask将使用它,并使用
Flask
构造函数中的default value for the ^{url_for
自动构建正确的URL注意:
确保在测试静态文件加载时,先清除浏览器的缓存,或在浏览器的私有/匿名模式下测试应用程序,以强制重新下载静态文件
相关问题 更多 >
编程相关推荐