Flask 不加载带有查询字符串的 css 文件

bur*_*urc 1 html css python flask

我已经开始在 Flask 上工作,问题是我在静态文件夹中创建了一个 css 文件,并想在模板上加载该 css 文件。

但即使我在隐身模式下尝试,它也不会加载 css 文件,我认为这可能是缓存问题,但事实并非如此。

<!DOCTYPE html>
<title> Welcome to My Blog</title>

<link rel="stylesheet" type="=text/css" href="{{ url_for('static', filename='style.css?v=0.01') }}">

<h2>Hey there {{ name }}</h2> 
Run Code Online (Sandbox Code Playgroud)

图片:Hello world Flask 应用程序

博客.py

from flask import Flask, request, render_template

app = Flask(__name__)


...
@app.route('/profile/<username>')
def profile(username):
    return render_template("profile.html", name=username)

...

if __name__ == '__main__':
    app.run(debug=True, port=8080)
Run Code Online (Sandbox Code Playgroud)

样式.css

h2{
    color: #00bfff;
}
Run Code Online (Sandbox Code Playgroud)

Val*_*tin 6

问题是您在文件名中包含查询字符串。

url_for('static', filename='style.css?v=0.01')
Run Code Online (Sandbox Code Playgroud)

url 路径结果为static/style.css%3Fv%3D0.01,因为特殊字符会被编码。要解决此问题,您必须添加查询元素作为关键字参数:

url_for('static', filename='style.css', v=0.01)
Run Code Online (Sandbox Code Playgroud)

此外:

  • 你的文件被调用stye.css而不是style.css
  • 你的<link>标签说的type="=text/css"不是type="text/css"它应该说的