为什么 Flask 加载 CSS 不存在的样式?

Why is Flask loading CSS styles that don't exist?

我正在尝试制作我的第一个网站。我将 Flask 与 HTML、CSS 和 Bootstrap 一起使用。一旦我对前端感到满意,我计划将其托管在 2010 iMac 运行 之类的 Ubuntu 服务器和 Apache 或 Nginx 上。

我目前遇到的问题是,由于我将项目文件夹移动到不同的目录,页面的设计与 css 样式表不匹配。起初我不确定是我的 CSS 技术不佳还是电脑问题,为了测试我添加了一些戏剧性的变化,例如:

* {
color: red;
}

前几天我这样做时没有任何变化,但是当我今天打开项目时应用了上述样式,即使它不再存在于样式表中。事实上,样式表中没有任何内容设置为红色。 因为 none 我对 style.css 所做的更改正在应用我最近从 /static 中删除了样式表,但是样式仍在应用于页面(包括所有字体红色)。这是为什么?

可能的原因: 该程序似乎在 /templates 中搜索样式表: <link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='style.css') }}"> 我通过 control+单击 {{ url_for('static', filename='style.css') }} 发现了这个,尝试转到文件的位置 VSCode 给我这个错误

Unable to read file `'/project/templates/{{ url_for('static', filename='style.css') }}` Unable to resolve non-existing file.`

无论style.css是否在/static中,都会出现上述错误。

application.py 中,我已尝试纠正此问题:

app = Flask(__name__,
            static_folder='/static')

另外,我在其他帖子中读到,从 Apache/Nginx 加载样式表被认为是更好的做法。任何人都可以解释为什么这是或 link 我向一个资源解释这是初学者可以理解的语言吗?

提前致谢,

基本答案是您必须在此处设置 static_url_path app = Flask(__name__, static_url_path="/STATIC_FOLDER", static_folder='STATIC_FOLDER')

关于 nginx:您不需要 nginx 进行本地开发,当您或某些 devops link 特定域名与您的应用程序时,它用于部署步骤

shift + f5 清除某些浏览器上 CSS 样式的缓存。这与仅仅刷新页面相反。