Flask {{ STATIC_URL }} 在未指定静态目录时返回304重定向

8 投票
1 回答
14148 浏览
提问于 2025-04-18 12:44

假设我有一个Flask应用程序,其中

app = Flask(__name__, static_url_path='')

也就是说,{{ STATIC_URL }} == ""(空字符串),而静态文件并没有存放在专门的/static目录下(比如说是http://www.example.com/img/logo.png,而不是http://www.example.com/static/img/logo.png

这样放着可以吗?如果我在代码中保留这个变量,任何包含{{ STATIC_URL }}的URL的GET请求都会返回304重定向,而不是200状态码。

我是否有必要:

  1. 删除我模板中所有出现的{{ STATIC_URL }}
  2. 创建一个真正的静态目录,而不是仅仅把它设置为空字符串?
  3. 在我的模板中保留所有{{ STATIC_URL }}的出现,以便将来如果需要的话可以设置一个新的静态目录?

1 个回答

15

HTTP响应码304表示“重定向到之前缓存的结果”。

这就是说,Flask在告诉你的浏览器,它已经有你请求的内容了。

如果你清除浏览器的缓存,你会发现下次请求时Flask会返回200,这表示请求成功。

撰写回答