【问题标题】:Referencing static files above parent directory in flask在烧瓶中引用父目录上方的静态文件
【发布时间】:2015-01-20 00:37:21
【问题描述】:

我正在使用烧瓶,我的存储库中有大约 6 个 Web 应用程序,因此我试图将所有相互使用的 .css 和 .js 文件提取到库目录中,因此我的目录结构如下所示:

lib/
  static/
    css/
      my-css.css
    js/
    images/
      my-image.jpg
webapps/
  webapp_1/
    src/
      webapp_1/
        main.py
        templates/
          base.html
          main.html
          other.html
  webapp_2/
    same as webapp_1 more or less
  .
  .
  .
  etc

所以我需要从 base.html 以某种形式引用静态目录,如下所示:

<link rel='stylesheet' href='../../../../../lib/static/css/my-css.css'>
<link rel="stylesheet" href="../../../../../lib/static/images/my-image.jpg">

这在我有一个纯 HTML 文件时有效,但在我通过 Flask 将其用作模板时无效。有什么我需要更改的或者我可以使用这些文件的方式吗?

【问题讨论】:

    标签: python html flask


    【解决方案1】:

    在 app.py 中:

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

    然后在您的模板中:

    <link rel='stylesheet' href='/static/css/my-css.css'>
    <link rel="stylesheet" href="/static/images/my-image.jpg">
    

    【讨论】:

    • 运气不好。它如何在完全不同的目录中找到该静态文件夹?
    • @clifgray 抱歉,忽略了 static_folder 配置。更新
    • 另一个问题,我可以将我的静态文件保存在多个文件夹中吗?我有一些特定于每个 web 应用程序,并且大多数都与它们相关,所以我想要不同的文件夹
    • @clifgray 您最好使用一个 root 静态目录,但您可以轻松地让每个站点在共享静态文件中维护自己的根目录和别名/符号链接,说 /static/common
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    • 2020-04-22
    • 2012-04-06
    • 1970-01-01
    • 2013-07-23
    • 1970-01-01
    • 2012-08-20
    相关资源
    最近更新 更多