gpt4 book ai didi

python - django-compressor 在 STATIC_ROOT/app 而不是 app/static 中编译 SCSS 文件

转载 作者:太空狗 更新时间:2023-10-30 01:33:57 25 4
gpt4 key购买 nike

我们正在使用 django-compressordjango.contrib.staticfiles 应用程序,但在运行 django 开发服务器和处理我们的 SCSS 时遇到问题:编译了错误的 SCSS 文件。找到 STATIC_ROOT/app 中的版本,而不是 app/static 中的版本。这使得在 app/static 中对 SCSS 的编辑不会反射(reflect)在编译的 CSS 中。

删除 STATIC_ROOT/app 中的所有内容可解决此问题,但如果出于某种原因执行 collectstatic 会导致很多困惑。

有没有办法确保编译的是应用程序/静态文件而不是任何现有的 STATIC_ROOT/应用程序文件?

我们将 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')

最佳答案

COMPRESS_PRECOMPILERS 中的sass --scss 命令没有明确说明目标目录。因此使用默认值,即 seems to be stdin and stdout .

现在,压缩器文档并不清楚使用 stdout 意味着什么;但是,从示例来看,文件似乎最终会在 COMPRESS_ROOT 中结束。 (默认为 STATIC_ROOT/CACHE,在您的情况下为 root/base/static/CACHE/)

我个人喜欢明确说明输入/输出目录(以在不同环境中保持不变)。这是一个示例(使用 pyScss 编译器,但思路是一样的):

scss_cmd = '{python} -mscss -A "{image_output_path}" -a "{static_url}" ' \
'-S "{static_root}" -o "{{outfile}}" "{{infile}}"'.format(
python=sys.executable,
image_output_path=COMPRESS_ROOT,
static_url=STATIC_URL,
static_root=os.path.join(PROJECT_ROOT),
)

COMPRESS_PRECOMPILERS = (
('text/x-scss', scss_cmd),
)

(抱歉,如果挖掘长期被遗忘的问题)

关于python - django-compressor 在 STATIC_ROOT/app 而不是 app/static 中编译 SCSS 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26770121/

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