首页 > 解决方案 > Flask 找不到本地静态文件,即使它们存在且指定路径正确

问题描述

我将 render_template 与 Flask 结合使用来呈现 html 文件 index.html,该文件又引用 CSS 样式表“templatemo-style.css”。在该 css 文件中,引用了其他本地文件,如图像等。

文件夹结构如下所示:

/PARENT FOLDER
   /templates
      /index.html
   /static
      /assets
         /images
            /various files

在“assets”文件夹中,有一个名为“css”的子文件夹,其中包含 css 文件。

css 文件调用以下 url 来获取网站的横幅图像:

background-image: url(../assets/images/main-banner.jpg);

问题是,当我运行烧瓶应用程序时,我在终端中收到以下 404 错误: 127.0.0.1 - - [02/Aug/2021 13:13:51] "GET /static/images/main-banner.jpg HTTP/1.1" 404 -

出于某种原因,应用程序没有调用我在代码中指定的路径。我已经在各种不同文件中的所有代码中搜索了这个神秘调用的位置,但我在任何地方都找不到它。即使我注释掉上面的“背景图像:”行,我仍然会遇到同样的错误。我应该注意,对于前端,我使用的是我在网上找到的 css/bootstrap 模板,然后根据自己的喜好进行了修改。我也搜索了js代码,也没有在那里进行调用。

我完全被难住了,不知道这个神秘的电话是从哪里来的。有人有任何可能的想法吗?谢谢

编辑:想通了。这是因为我的浏览器正在缓存我的 css 文件,因此没有运行更新的代码。

标签: pythonhtmlcssflaskweb

解决方案


也许这会奏效

background-image: src="{{ url_for('static', filename='filename') }}"

推荐阅读