使用 url_for 链接到 Flask 静态文件
- 2024-11-25 08:49:00
- admin 原创
- 171
问题描述:
如何url_for
在 Flask 中引用文件夹中的文件?例如,我在static
文件夹中有一些静态文件,其中一些可能在子文件夹中,例如static/bootstrap
。
当我尝试从 提供文件时static/bootstrap
,出现错误。
<link rel=stylesheet type=text/css href="{{ url_for('static/bootstrap', filename='bootstrap.min.css') }}">
我可以用它来引用不在子文件夹中的文件,这很有效。
<link rel=stylesheet type=text/css href="{{ url_for('static', filename='bootstrap.min.css') }}">
使用 引用静态文件的正确方法是什么url_for
?如何使用url_for
生成任意级别的静态文件的 URL?
解决方案 1:
默认情况下,您有静态文件的static
端点Flask
。应用程序还具有以下参数:
static_url_path
:可用于为 Web 上的静态文件指定不同的路径。默认为static_folder
文件夹的名称。
static_folder
:包含应在 处提供的静态文件的文件夹static_url_path
。默认为应用程序根路径中的“static”文件夹。
这意味着该filename
参数将采用文件的相对路径static_folder
,并将其转换为与以下内容相结合的相对路径static_url_default
:
url_for('static', filename='path/to/file')
将文件路径从 转换static_folder/path/to/file
为 url 路径static_url_default/path/to/file
。
因此,如果您想从static/bootstrap
文件夹中获取文件,请使用以下代码:
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='bootstrap/bootstrap.min.css') }}">
将转换为(使用默认设置):
<link rel="stylesheet" type="text/css" href="static/bootstrap/bootstrap.min.css">
另请查看url_for
文档。
解决方案 2:
就我而言,我在 nginx 配置文件中有特殊说明:
location ~ .(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
try_files $uri =404;
}
所有客户端都收到了“404”,因为 nginx 对 Flask 一无所知。
主要配置文件/etc/nginx/nginx.conf
在 Linux 上。Windows 上可能类似。
相关推荐
热门文章
项目管理软件有哪些?
热门标签
云禅道AD