【问题标题】:Why is Flask loading CSS styles that don't exist?为什么 Flask 会加载不存在的 CSS 样式?
【发布时间】:2020-11-30 12:27:14
【问题描述】:

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

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

* {
color: red;
}

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

可能的原因: 该程序似乎正在搜索/templates 中的样式表: <link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='style.css') }}"> 我通过控制+单击{{ 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 加载样式表被认为是更好的做法。谁能解释为什么会这样或将我链接到一个资源,该资源以初学者可以理解的语言解释这一点?

提前致谢,

【问题讨论】:

    标签: css flask visual-studio-code bootstrap-4 stylesheet


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,但是你知道它是否可能是由VSCode引起的吗?我刚刚使用文本编辑器和终端运行了该程序,它按预期工作!
    • 我不使用 vscode,可能问题出在 *.pyc 文件中,或者您安装了像 pip install -e . 这样的应用程序,或者只是您没有重新启动您的应用程序 :)
    • 谢谢。我会调查这些。我开始怀疑这与 VSCodes 的缓存有关。虽然我已经清除了缓存并且没有任何改变。它在终端上运行得非常好……嗯。关于 nginx:我指的是当我正确部署网站(不是本地)并且其他人可以访问时。抱歉,我不清楚。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-14
      • 1970-01-01
      • 1970-01-01
      • 2014-11-17
      • 1970-01-01
      相关资源
      最近更新 更多