默认情况下,Flask允许在静态文件夹中嵌套一个级别。例如访问Flask中的嵌套静态文件夹的可能性
->static <BR>
---->css <BR>
------->images<BR>
我们可以通过浏览器访问css目录中的文件。
例如http://localhost:5000/static/css/file1.css
如何通过浏览器访问图像目录中的文件?
默认情况下,Flask允许在静态文件夹中嵌套一个级别。例如访问Flask中的嵌套静态文件夹的可能性
->static <BR>
---->css <BR>
------->images<BR>
我们可以通过浏览器访问css目录中的文件。
例如http://localhost:5000/static/css/file1.css
如何通过浏览器访问图像目录中的文件?
不确定,在哪里找到,Flask只允许一层嵌套。
试试吧。
我有目录./static/html/jobs.html
,我得到这个url http://localhost:5000/static/html/jobs.html
。
Flask使用静态路径(默认为/static
)和任何文本设置静态文件路径。从source:无论这条路线分配给filename
self.add_url_rule(self.static_url_path + '/<path:filename>',
endpoint='static',
view_func=self.send_static_file)
send_to_static
通行证。
return send_from_directory(self.static_folder, filename,
cache_timeout=cache_timeout)
如果你看一下source为send_from_directory
你会看到,它只是使用safe_join(directory, filename)
来获取文件路径。
safe_join
本身只是做一些工作来规范化路径,并注意文件名中的文件名为..
。
回到URL route,path
匹配任何文本。这就像string
,除了它接受斜杠。这意味着您可以在静态文件夹中使用任何级别的嵌套。像/static/file.txt
和/static/p/a/t/h/t/o/file.txt
这样的网址都可以正常工作。只要网址以静态路径开头,您想要的行为开箱即用:
http://localhost:5000/static/css/images/image1.png