【问题标题】:Which static file is loaded when two files have the same name?当两个文件同名时加载哪个静态文件?
【发布时间】:2016-09-14 19:26:24
【问题描述】:

参考this question 的回答中提出的评论问题,假设我有两个来自两个不同应用程序的静态文件,它们都具有相同的名称style.css

   /foo
      /static
         /css
            /style.css
      /views.py
      /models.py
      /urls.py
   /bar
      /static
         /css
            /style.css
      /views.py
      /models.py
      /urls.py

而我将manage.py collectstatic 的所有文件放入STATIC_ROOTstyle.css 会发生什么?如何确定要加载哪个style.css 的优先级?每个应用的模板如何知道要加载哪个 style.css?

我想我真正要问的是:在同一个项目中拥有同名静态文件的 django 最佳实践过程是什么?

【问题讨论】:

  • 第一个加载器找到的那个。
  • 是的,我知道这可以通过findstatic 进行验证。我想知道的是管理同名文件的正确程序。

标签: django


【解决方案1】:

这在 django 的教程文档中。链接here。命名您的静态文件。像这样使用{app_name}/static/{app_name} 约定。

/foo
  /static
    /foo # add this subdirectory
      /css
        /style.css
  /views.py
  /models.py
  /urls.py
/bar
  /static
    /bar # add this subdirectory
      /css
        /style.css
  /views.py
  /models.py
  /urls.py

这样您就可以拥有相同的文件名。您现在可以在 {% static %} 标记中将这些文件称为 foo/css/style.css 和 bar/css/style.css。然后,URL 将是 {STATIC_ROOT}/foo/css/style.css 和 {STATIC_ROOT}/bar/css/style.css。

【讨论】:

    猜你喜欢
    • 2014-01-02
    • 2021-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多