问题标签 [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.
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 提供一些静态文件(图像)。(这对我的本地开发来说很好)。
python - 如何在负载均衡器后面使用 django-compressor?
我在负载均衡器后面有两台服务器。每台服务器都运行一个 memcached 服务器,并且设置文件(两台服务器上相同)都定义了它们(简而言之:共享缓存)。
我希望生成文件的路径在服务器上是相同的,这样客户端就不必多次下载。
为了让我能够正常工作,我需要了解 django 压缩器的工作原理。
- django 压缩器中缓存的实际用途是什么?
- 文件内容是否存储在缓存和文件系统中?
- 如果是这样,哪个先发生?
- 我希望我在这里提出正确的问题。随意添加一些。
比这更详细和更好构造的序列将非常有帮助。
编辑
- 由于服务器都共享一个 memcached 服务器,我应该设置
COMPRESS_CACHE_KEY_FUNCTION = 'compressor.cache.socket_cachekey'
(参见开发分支)还是使用相同的缓存键有助于我具有相同文件名的观点? - 我理解这一点的方式是,从源 js/css 文件中收集 mtime 以确定它们是否可能已经更改,并且应该从中生成一个新文件。正确的?
- 这可能不会发生在每个负载上。什么时候发生?
django - 如何使用 Amazon 的 S3 配置 django-compressor 和 django-staticfiles?
我正在尝试设置django-compressor和django-staticfiles,以便从 Amazon 的 S3 提供压缩的 CSS/Javascript 和图像。
我已经设法使用 S3 作为后端来设置静态文件,因此它的collectstatic
命令将文件发送到 S3 而不是STATIC_ROOT
.
然而,当试图添加django-compressor
到混合中时,这对我来说似乎一切都崩溃了。按照有关设置远程存储的文档,我创建了存储后端的子类boto ,因此我将示例复制到storage.py
. 一旦我开始使用这个缓存的后端,文件就会被复制到 static_media 而不是 S3。在第一页加载后,CACHE 文件夹出现在 S3 和 static_media 文件夹中。
设置STATICFILES_STORAGE
并COMPRESS_STORAGE
返回到 boto 的普通 S3 类 ( storages.backends.s3boto.S3BotoStorage
) 会导致静态资产被收集到 S3 存储桶中,并且没有 static_media 文件夹。但是尝试重新加载页面会引发错误:
突出显示{% compress css %}
为标签和compressor/base.py
原点。
我的 s3/staticfiles/compressor 部分settings.py
:
那么我哪里错了?CachedS3BotoStorage
使用自定义存储时我是否配置错误?
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'
,但我认为这是导致问题的原因。
相关设置:
django - Sass 的 Django_compressor 错误。不能@import 文件
我正在尝试使用 Sass 用 django_compressor 编译 style.scss 文件。
我发现如果我在 css 目录中,Sass 可以在命令行上工作,但如果我在任何其他目录中,它会产生与以下相同的错误。
我该如何解决这个错误?
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() 调用的原因。
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,压缩器存储压缩文件的位置。有没有办法做到这一点 ?
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。
django - 如何让 Django Compressor 在 Windows 上与 LessCSS 一起工作
我想知道如何让 Django Compressor 在 Windows 上与 LessCSS 一起工作。
安装了lessc
Django 管道设置
COMPRESS_PRECOMPILERS = ( ('text/less', 'lessc {infile} {outfile}'), )
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 读取它。这可能吗?