当两个文件具有相同名称时,会加载哪个静态文件?

时间:2016-09-14 19:26:25

标签: django

参考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最佳实践程序是什么?

1 个答案:

答案 0 :(得分:0)

这是在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。这些网址将是{STATIC_ROOT} /foo/css/style.css和{STATIC_ROOT} /bar/css/style.css。