仅针对某些应用程序收集静态信息
Collectstatic only for certain apps
我在 Django 项目中使用 Grunt 管理所有静态文件。我为我的项目设置了一个 gruntfile,它获取所有 js 和 css 文件,然后将它们合并并缩小到一个文件中。这些文件被复制到一个名为 /static/source
的目录中,在我的设置中我配置了这样的静态文件:
STATICFILES_DIRS = (
os.path.join(PROJECT_ROOT, 'static/build'),
)
STATIC_ROOT = os.path.join(PUBLIC_ROOT, 'static')
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
)
一切正常,我对此没有任何问题。问题是当我尝试使用 admin
应用程序时。如果我将 STATICFILES_FINDERS
添加到 django.contrib.staticfiles.finders.AppDirectoriesFinder
,当我执行收集过程时,它还会从我的应用程序中复制所有静态文件(我用 Grunt 连接和缩小的源文件)。
有没有办法只收集某个应用的静态文件?
您可以使用 collectstatic
命令的 i
标志来忽略来自应用程序的静态文件。
例如:python manage.py collectstatic -i app -i an_other_app
如果你使用 g运行t,你可以使用 grunt-exec
插件来自动 运行 这个命令。
我在 Django 项目中使用 Grunt 管理所有静态文件。我为我的项目设置了一个 gruntfile,它获取所有 js 和 css 文件,然后将它们合并并缩小到一个文件中。这些文件被复制到一个名为 /static/source
的目录中,在我的设置中我配置了这样的静态文件:
STATICFILES_DIRS = (
os.path.join(PROJECT_ROOT, 'static/build'),
)
STATIC_ROOT = os.path.join(PUBLIC_ROOT, 'static')
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
)
一切正常,我对此没有任何问题。问题是当我尝试使用 admin
应用程序时。如果我将 STATICFILES_FINDERS
添加到 django.contrib.staticfiles.finders.AppDirectoriesFinder
,当我执行收集过程时,它还会从我的应用程序中复制所有静态文件(我用 Grunt 连接和缩小的源文件)。
有没有办法只收集某个应用的静态文件?
您可以使用 collectstatic
命令的 i
标志来忽略来自应用程序的静态文件。
例如:python manage.py collectstatic -i app -i an_other_app
如果你使用 g运行t,你可以使用 grunt-exec
插件来自动 运行 这个命令。