【发布时间】:2016-05-12 20:39:46
【问题描述】:
我们正在使用 django-compressor 和 django.contrib.staticfiles 应用程序,在运行 django 开发服务器和处理 SCSS 时遇到问题:编译了错误的 SCSS 文件。正在找到 STATIC_ROOT/app 中的版本,而不是 app/static 中的版本。这使得在app/static 中对 SCSS 的编辑不会反映在编译后的 CSS 中。
删除STATIC_ROOT/app 中的所有内容可以解决此问题,但如果出于某种原因执行collectstatic,则会引起很多混乱。
有没有办法确保编译 app/static 文件而不是任何现有的 STATIC_ROOT/app 文件?
我们将 django-compressor 1.4 与 django 1.6 一起使用,并且在 django 设置文件中使用了以下设置:
STATICFILES_FINDERS = (
"django.contrib.staticfiles.finders.FileSystemFinder",
"django.contrib.staticfiles.finders.AppDirectoriesFinder",
'compressor.finders.CompressorFinder',
)
COMPRESS_PRECOMPILERS = (
("text/x-scss", 'sass --scss'),
)
STATICFILES_DIRS = [] #default
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static')
【问题讨论】:
-
您能分享一下您的
STATICFILES_DIRS和STATIC_ROOT设置吗? -
刚刚使用
STATICFILES_DIRS(这只是默认设置)和STATIC_ROOT编辑。 -
app到底是什么?它是一个 Django 应用程序、一个 Django 项目还是其他什么?app/static住在哪里?并添加到INSTALLED_APPS? -
感谢 cmets!
app是我们在项目中使用的任何 Django 应用程序(它们在 INSTALLED_APPS 中)。例如,我们在PROJECT_ROOT/base中有一个名为base的应用,在PROJECT_ROOT/base/static中有静态文件(我们的项目布局类似于this one)
标签: python django django-compressor