首页 > 解决方案 > Django + Sass + Compressor:加载缓存的css文件,无法更新或删除

问题描述

啊哈!

我一直在做一个 django 项目,最近改用 SASS 进行样式设置。对 css 文件的初始编译似乎工作正常,但是一旦我去更新文件,我注意到更改没有反映在浏览器中。

经过进一步调查,我确定问题是位于 static/CACHE/css/output.ad5d8929a444.css 的缓存文件,但是我无法在文件系统中的任何位置找到该文件,并运行诸如

./manage.py compilescss --remove
./manage.py collectstatic

不能解决问题。

我试过四处寻找其他问题,似乎这个问题是最密切相关的,但是这个建议在我的情况下不起作用。我已经尝试删除所有浏览器数据,并且我通常只在 Chrome 中使用隐身模式进行开发,以避免首先缓存文件。我曾尝试在我的文件系统中搜索该文件,但是,我似乎无法找到 statice/CACHE 文件夹。

我的问题是如何强制 django 使用新的 css 文件,以及在哪里可以找到缓存文件夹?这是我第一次使用 SASS 进行样式设计,因此对该部门的任何建议表示赞赏。

设置.py

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, '/my_portfolio/my_portfolio/static/')
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'my_portfolio/static'),
]
STATICFILES_FINDERS = [
    'compressor.finders.CompressorFinder',
]

MEDIA_ROOT = os.path.join(BASE_DIR, 'my_portfolio/img')
MEDIA_URL = '/img/'


#SASS
STATIC_FILES_FINDERS = [
    'compressor.finders.CompressorFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'sass_processor.finders.CssFinder',
]
# SASS_PROCESSOR_INCLUDE_DIRS = [
#     os.path.join(BASE_DIR, 'my_portfolio/static/my_portfolio'),
# ]
SASS_PROCESSOR_ROOT = os.path.join(PROJECT_ROOT, 'static')
COMPRESS_PRECOMPILERS = (
    ('text/x-scss', 'django_libsass.SassCompiler'),
)
COMPRESS_ENABLED= True

base.html

{% load static %}
{% load sass_tags %}
{% load compress %}

    {% compress css %}
        <link rel="stylesheet" href="{% sass_src 'my_portfolio/stylesheet.scss' %}" type='text/css'>
    {% endcompress %} 

如果您需要任何进一步的信息,请告诉我,我会相应地更新问题。

感谢您提供的任何和所有提示或建议!

标签: djangosassdjango-compressor

解决方案


您的浏览器可能已经缓存了样式表。清除浏览器的缓存并重新加载页面,看看它是否改变。


推荐阅读