Django压缩器与绝对URL路径的CleverCSS

3 投票
1 回答
1226 浏览
提问于 2025-04-16 04:55

在使用Django、compressor和clevercss的时候,我把我的CSS链接设置成了绝对路径。然后,clevercss接收到的就是没有加上COMPRESS_ROOT的.ccss文件路径(也就是绝对路径)。当我把CSS链接改成相对路径时,clevercss可以处理ccss文件,但浏览器会正确地去找相对路径下的CSS文件(比如说mywebsite.com/profile/user/1/css/stylesheet.css)。

不过,compressor在CSS链接是相对路径的时候会使用MEDIA_ROOT,但如果是绝对路径就不会。这就导致了我的CSS要么被clevercss处理了,但浏览器无法访问(除非在主页上),要么clevercss无法访问这些文件(因为用了绝对路径)。有趣的是,http://github.com/mintchaos/django_compressor上提供的示例都是使用绝对路径的CSS链接。

我觉得我可能哪里做错了,但不太确定具体是哪里,已经花了不少时间在找这个问题。我现在是在本地通过./manage.py runserver运行这个项目,并且通过Django提供一些静态文件(图片)。(这样做对于我的本地开发是没问题的)。

1 个回答

2

我不能具体说django-compressor的事情,但我一直在寻找一个好的自动压缩方案,用来处理我那些用Django做的网站里的CSS和JS文件。目前我在用django-static。按照我的经验,它的设置和使用都非常简单。我之前在使用django-compress(和django-compressor不同)时遇到了一些问题,所以决定试试django-static。到目前为止,它的表现很好,值得一试。你可以在这里找到它:http://github.com/peterbe/django-static

撰写回答