问题标签 [django-compressor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1168 浏览

python - 具有绝对 url 路径的 django 压缩器和clevercss

使用 django、compressor 和clevercss 时,我将我的css url 设置为绝对路径。然后,Clevercss 将传递 .ccss 文件的路径,而不带 COMPRESS_ROOT 前缀(绝对路径)。当我将我的 css url 设置为相对路径时,clevercss 会处理 ccss 文件,但浏览器随后会正确查找相对放置的 css 文件(例如 mywebsite.com/profile/user/1/css/stylesheet.css)

然而,当 css 链接是相对 url 时,Compressor 确实使用 MEDIA_ROOT,但在使用绝对 url 时不使用。不幸的是,我的 css 要么由clevercss 呈现并且浏览器无法访问(除非在主页上),要么clevercss 无法访问文件(由于使用了绝对url)。具有讽刺意味的是,http: //github.com/mintchaos/django_compressor上提供的示例使用绝对 url 作为 css 路径。

我想我在这里做错了什么,但我不确定它可能在哪里,并且花了好几个小时寻找。我目前也在通过 ./manage.py runserver 在本地运行它,并通过 django 提供一些静态文件(图像)。(这对我的本地开发来说很好)。

0 投票
3 回答
2529 浏览

python - 如何在负载均衡器后面使用 django-compressor?

我在负载均衡器后面有两台服务器。每台服务器都运行一个 memcached 服务器,并且设置文件(两台服务器上相同)都定义了它们(简而言之:共享缓存)。

我希望生成文件的路径在服务器上是相同的,这样客户端就不必多次下载。

为了让我能够正常工作,我需要了解 django 压缩器的工作原理。

  • django 压缩器中缓存的实际用途是什么?
  • 文件内容是否存储在缓存和文件系统中?
    • 如果是这样,哪个先发生?
  • 我希望我在这里提出正确的问题。随意添加一些。

比这更详细和更好构造的序列将非常有帮助。

编辑

  • 由于服务器都共享一个 memcached 服务器,我应该设置COMPRESS_CACHE_KEY_FUNCTION = 'compressor.cache.socket_cachekey'(参见开发分支)还是使用相同的缓存键有助于我具有相同文件名的观点?
  • 我理解这一点的方式是,从源 js/css 文件中收集 mtime 以确定它们是否可能已经更改,并且应该从中生成一个新文件。正确的?
    • 这可能不会发生在每个负载上。什么时候发生?
0 投票
4 回答
9951 浏览

django - 如何使用 Amazon 的 S3 配置 django-compressor 和 django-staticfiles?

我正在尝试设置django-compressordjango-staticfiles,以便从 Amazon 的 S3 提供压缩的 CSS/Javascript 和图像。

我已经设法使用 S3 作为后端来设置静态文件,因此它的collectstatic命令将文件发送到 S3 而不是STATIC_ROOT.

然而,当试图添加django-compressor到混合中时,这对我来说似乎一切都崩溃了。按照有关设置远程存储的文档,我创建了存储后端的子类boto ,因此我将示例复制到storage.py. 一旦我开始使用这个缓存的后端,文件就会被复制到 static_media 而不是 S3。在第一页加载后,CACHE 文件夹出现在 S3 和 static_media 文件夹中。

设置STATICFILES_STORAGECOMPRESS_STORAGE返回到 boto 的普通 S3 类 ( storages.backends.s3boto.S3BotoStorage) 会导致静态资产被收集到 S3 存储桶中,并且没有 static_media 文件夹。但是尝试重新加载页面会引发错误:

突出显示{% compress css %}为标签和compressor/base.py原点。

我的 s3/staticfiles/compressor 部分settings.py

那么我哪里错了?CachedS3BotoStorage使用自定义存储时我是否配置错误?

0 投票
5 回答
12277 浏览

django - Django-Compressor 抛出 UncompressableFileError

我正在使用 django-compressor 和 django-staticfiles(外部版本,我在 Django 1.2 上)。

当我尝试加载我的网站时,出现错误:

我已经验证COMPRESS_URL等于STATIC_URL,并且该文件实际上可以通过该 URL 访问。

查看 django-compressor 代码,我发现抛出异常的位置:

我的模板中的第一个{% compress css %}块是这样的:

(请注意,第一个链接不使用{{ STATIC_URL }},但第二个使用)

我在我的错误日志中得到了这个:

如您所见,screen.css 文件被处理了两次,第二次成功。然而,facebox.css 文件第二次失败,可能是因为在{{ STATIC_URL }}第二次解析文件时没有在模板上下文中定义。

显然我可以通过不使用来解决问题{{ STATIC_URL }},但这不是一个可接受的解决方案。

为什么我的 css 文件会被处理两次?他们最初有media='screen, projection',但我认为这是导致问题的原因。

相关设置:

0 投票
1 回答
896 浏览

django - Sass 的 Django_compressor 错误。不能@import 文件

我正在尝试使用 Sass 用 django_compressor 编译 style.scss 文件。

我发现如果我在 css 目录中,Sass 可以在命令行上工作,但如果我在任何其他目录中,它会产生与以下相同的错误。

我该如何解决这个错误?

0 投票
1 回答
2585 浏览

python - 在 apache+mod_wsgi 下运行 subprocess.Popen 总是返回错误,返回码为 -6

我希望有人看到这个-

我正在运行 django-compressor,利用 lessc 设置将 less 渲染/压缩到文件上的 CSS 中。从开发服务器调用时它可以完美运行,但是在 apache+mod_wsgi 下运行时它始终返回错误。

为了调试这个,我运行了过滤器作为 www-data 用户(在 WSGIDaemonProcess 指令中定义为 wsgi 用户)调用的确切命令,并验证它是否正常工作,包括读取和写入文件的权限它在操纵。

我还破解了该系统上compressor/filters/base.py 中的django-compressor 代码,似乎任何试图调用的命令在proc.communicate() 调用后都得到-6 的返回码。

我希望有人以前看过这个 - 或者它敲响了一些钟声。它在 apache+mod_wsgi 进程之外的这台机器上也能正常工作(即作为开发服务器运行该进程)。我只是不清楚可能会阻止 subprocess.Popen() 调用的原因。

0 投票
0 回答
320 浏览

django - django(使用 django_compressor)可以只提供来自 s3 的压缩文件吗?

我已将 django(1.3) 配置为从本地 site_media 目录提供静态文件。

有没有办法配置 django_compressor(1.1) 以在离线模式下压缩 js/css 文件,并提供来自亚马逊 S3 的压缩文件,但来自本地目录的其他静态文件?

我发现 django_compressor 可以简单地配置为使用 S3,带有自定义存储后端,但只有当所有静态文件都从那里提供时。

有一个 COMPRESS_URL 变量,需要设置为静态文件源和目标 url。我可能需要设置单独的 url,压缩器将在其中查找文件,第二个设置到 S3,压缩器存储压缩文件的位置。有没有办法做到这一点 ?

0 投票
2 回答
1239 浏览

apache - 如何为 Apache 虚拟主机设置 PATH 以包含 virtualenv 的 bin 目录?

我正在尝试将我的项目部署为虚拟主机并在 virtualenv 中提供服务。导入和使用安装在 virtualenv 中的包不是问题。但以下位在服务器上失败:

我收到以下错误:

我尝试了一些我在网上找到的东西,但都没有奏效。我希望SetEnv

但它不起作用,我的猜测是因为CompilerFilter正在使用subprocess.Popen,但我不确定。

如何避免硬编码 pyscss 可执行文件的路径并将bin目录放在PATH, 但仅针对此虚拟主机

更新:

Apache 版本是2.2.17,mod_wsgi 版本是3.3,virtualenv 版本是1.4.9

0 投票
2 回答
2068 浏览

django - 如何让 Django Compressor 在 Windows 上与 LessCSS 一起工作

我想知道如何让 Django Compressor 在 Windows 上与 LessCSS 一起工作。

安装了lessc

Django 管道设置

COMPRESS_PRECOMPILERS = ( ('text/less', 'lessc {infile} {outfile}'), )

0 投票
6 回答
8199 浏览

python - Django-compressor:如何写入 S3,从 CloudFront 读取?

我想从 CloudFront 提供我的压缩 CSS/JS(它们位于 S3 上),但无法通过 settings.py 中的压缩器设置来解决此问题,我有以下内容:

尽管 COMPRESS_URL,我的文件是从我的 s3 存储桶中读取的:
<link rel="stylesheet" href="https://example.s3.amazonaws.com/compressed_static/css/e0684a1d5c25.css?Signature=blahblahblah;Expires=farfuture;AWSAccessKeyId=blahblahblah" type="text/css" />

我想问题是我想将文件写入 S3,但从 CloudFront 读取它。这可能吗?