Django 的collectstatic 有什么意义?

2024-03-03

在 Django 中,惯例是将应用程序特定的所有静态文件(即 css、js)放入名为的文件夹中static。所以结构看起来像这样:

mysite/
    manage.py
    mysite/ --> (settings.py, etc)
    myapp/ --> (models.py, views.py, etc)
        static/

In mysite/settings.py I have:

STATIC_ROOT = 'staticfiles'

所以当我运行命令时:

python manage.py collectstatic   

它创建一个名为的文件夹staticfiles在根级别(因此与myapp/)

这有什么意义呢?这不是只是创建我所有静态文件的副本吗?


将多个应用程序中的静态文件收集到单个路径中

嗯,一个 Djangoproject可能会使用几个apps,所以在那里你只有一个myapp,实际上可能是myapp1, myapp2, etc

通过将它们从各个应用程序内部复制到单个文件夹中,您可以将前端 Web 服务器(例如 nginx)指向该单个文件夹STATIC_ROOT并从单个位置提供静态文件,而不是将 Web 服务器配置为从多个路径提供静态文件。

持久化 URL清单静态文件存储 https://docs.djangoproject.com/en/3.2/ref/contrib/staticfiles/#manifeststaticfilesstorage

关于 MD5 哈希值附加到文件名以进行版本控制的注释:它不是默认行为的一部分collectstatic, as settings.STATICFILES_STORAGE默认为StaticFilesStorage(这不会那样做)

MD5 哈希值将生效,例如如果你将其设置为使用ManifestStaticFilesStorage,这会添加该行为。

此存储的目的是继续提供旧文件,以防万一 有些页面仍然引用这些文件,例如因为它们被缓存 您或第三方代理服务器。此外,如果 您想要将未来的 Expires 标头应用到已部署的文件中 加快后续页面访问的加载时间。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 的collectstatic 有什么意义? 的相关文章

随机推荐

  • 在 Perl 中获取按修改日期排序的文件列表

    我正在尝试获取按修改日期排序的文件列表 我修改了示例程序根据日期和时间对目录进行排序并列出文件 http forums devshed com perl programming 6 sort directory and list files
  • 使用loopj Android异步Http客户端同步调用

    在一种情况下 我尝试在 Loopj 上使用 setUseSynchronousMode 来等待 http 调用的结果 然后再继续 我试过 AsyncHttpResponseHandler responseHandler new AsyncH
  • 如何尽可能快地生成此 switch 语句?

    2009 12 04 更新 有关此处发布的一些建议的分析结果 请参见下文 问题 考虑以下非常无害 非常简单的方法 它使用switch返回定义的枚举值的语句 public static MarketDataExchange GetMarket
  • 单元测试项目中的连接字符串到 app_data 文件夹中的引用数据库

    我希望在单元测试项目中引用我的数据库文件 这是一个 ASP NET MVC 应用程序 请注意 我知道我不应该在单元测试中访问数据库 但这是为了快速修复我现在需要通过的一项测试 在下一个里程碑之后 我将嘲笑数据库访问方法等 这是我的 mvc
  • 在 Groovy 1.7 中使用具有混合内容的 HTML 构建器的正确语法是什么?

    On the Groovy 示例页面 https web archive org web 20100712132418 http groovy codehaus org Builders有一个示例说明如何使用具有混合内容的 Groovy H
  • Android:使用自定义键盘编辑文本

    我按照 sdk 中的示例创建了自己的自定义键盘 现在我想在我的应用程序中的 EditText 上默认使用这个自定义键盘 实际上我必须长按 edittext 然后选择我的custom keyboard 我怎样才能做到这一点 似乎与 input
  • 猜测无界整数

    如果我对你说 我正在想一个0到n之间的数字 我会告诉你你的猜测是高还是低 然后你会立即进行二分查找 如果我删除上限怎么办 即我正在考虑一个正整数 你需要猜测它 一种可能的方法是让您猜测 2 4 8 直到您对某些 k 猜测 2 k 并且我说
  • Pod 无法安装软件包(apt-get update 或 apt-get install )

    我发现集群中的 pod 在 exec 到 pod 时无法安装软件包 在调试时我意识到这是由于 etc resolv conf entries The etc resolv conf 其中一个 Pod 的条目是 nameserver 192
  • XMPP 带有支持 X-FACEBOOK-PLATFORM 的 Java Asmack 库

    我正在尝试使用 Smack 库在 Android 上进行 Facebook 聊天 我读过Chat API http developers facebook com docs chat 来自 Facebook 但我不明白如何使用这个库向 Fa
  • 对部分排序的数组进行排序

    我正在尝试对具有以下属性的数组进行排序 它增加到一定程度然后开始减少 然后增加然后减少等等 是否有任何算法可以通过利用部分排序来以低于 nlog n 的复杂度对其进行排序 数组示例 14 19 34 56 36 22 20 7 45 56
  • Python 求和字典列表中元组中的值?

    在我的字典中 每个条目都有一个元组列表 我的python语法可能是错误的 请耐心等待 它看起来像这样 1 2 2 4 3 6 1 7 1 8 3 2 4 1 5 3 1 2 我想对每个条目的元组中的第二个值求和 即 1 10 2 5 我一直
  • 当 TabHost 存在于活动中时,EditText 使用硬键盘失去焦点

    我正在 tabhost 内显示 EditText Tabhost 位于 SherlockFragmentActivity 内部 假设我处于触摸模式 我单击 EditText 以使其获得焦点并开始在其上输入内容 输入 2 3 个字符后 我决定
  • 将 image/jpeg 作为 arraybuffer 或 blob 返回

    我目前正在调用我的 api 它返回一个图像作为image jpeg 我的问题是通过 javascript Angular 调用 url 时 factory资源 我的数组缓冲区为空 另外 字节长度为 0 如果我使用响应类型 或 文本 调用 a
  • 是否有专为创建 REST API 参考文档而设计的 CMS 引擎? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Scala 并行赋值仅在声明中

    Having def f 1 two 3 0 为什么可以 var x y z f but not var i 0 var j hello var k 0 0 use i j k then i j k f expected but found
  • 用于未来更新的 Android 数据库方法

    在 android 中使用 sqlite 数据库的最佳方法是什么 sqlite数据库文件 第一次复制到应用环境中 OR 在代码中创建表 在数据库助手的 onCreate 中 我的数据库有6个表 第一次是空的 我问这个问题是因为我想将来更新我
  • 在 Lollipop 上使用 Android 存储访问框架列出文件时出现错误

    背景 我有一些应用程序大量使用 SD 卡进行文件同步 Kitkat 上的外部 SD 卡访问损坏仍然是一个大问题 但我正在尝试使用 Lollipop 上提供的新 API 为拥有此问题的用户解决此问题 我成功请求并保留了对 SD 卡的权限 并且
  • 尝试用 .then、.fail 和 .reject 打破 jQuery 承诺链

    更新 此问题是 jQuery 1 7 与 1 8 的结果 永远不要在 1 7 中使用 Promise 因为它们不能通过在 a 中返回 Promise 来链接 then 1 8看起来他们并没有搞砸 http jsfiddle net delv
  • 如何在.Net core 3.1版本中以编程方式使用WCF服务

    我有一个 WCF 服务 它是使用 Net框架4 7 现在我必须使用以下命令以编程方式验证和解析 WCF 服务 Net Core 3 1 Web应用程序 without将 WCF 服务添加为服务参考 添加连接服务中的选项Visual Stud
  • Django 的collectstatic 有什么意义?

    在 Django 中 惯例是将应用程序特定的所有静态文件 即 css js 放入名为的文件夹中static 所以结构看起来像这样 mysite manage py mysite gt settings py etc myapp gt mod