gpt4 book ai didi

python - Django 的 collectstatic 有什么意义?

转载 作者:IT老高 更新时间:2023-10-28 21:41:44 25 4
gpt4 key购买 nike

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

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

mysite/settings.py 我有:

STATIC_ROOT = 'staticfiles'

所以当我运行命令时:

python manage.py collectstatic   

它在根级别创建一个名为 staticfiles 的文件夹(与 myapp/ 相同的目录)

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

最佳答案

将来自多个应用的​​静态文件收集到一个路径中

好吧,一个 Django project 可能会使用多个 apps,所以虽然你只有一个 myapp,但它实际上可能是 myapp1myapp2

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

具有 ManifestStaticFilesStorage 的永久 URL

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

MD5 哈希值会在例如如果您将其设置为使用 ManifestStaticFilesStorage,则会添加该行为。

The purpose of this storage is to keep serving the old files in casesome pages still refer to those files, e.g. because they are cached byyou or a 3rd party proxy server. Additionally, it’s very helpful ifyou want to apply far future Expires headers to the deployed files tospeed up the load time for subsequent page visits.

关于python - Django 的 collectstatic 有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34586114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com