标签: django-compressor

带有S3 URL Heroku的Django Compressor

我目前正在使用django压缩器和django存储来运行s3的静态媒体.我的文件如下:

根据文档我的存储空间是:

from django.core.files.storage import get_storage_class
from storages.backends.s3boto import S3BotoStorage

class CachedS3BotoStorage(S3BotoStorage):
    """
    S3 storage backend that saves the files locally, too.
    """
    def __init__(self, *args, **kwargs):
        super(CachedS3BotoStorage, self).__init__(*args, **kwargs)
        self.local_storage = get_storage_class(
            "compressor.storage.CompressorFileStorage")()

    def save(self, name, content):
        name = super(CachedS3BotoStorage, self).save(name, content)
        self.local_storage._save(name, content)
        return name
Run Code Online (Sandbox Code Playgroud)

我的设置是:

# S3 Storage Section
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
STATICFILES_STORAGE = DEFAULT_FILE_STORAGE
AWS_ACCESS_KEY_ID = os.environ['AWS_ACCESS_KEY_ID']
AWS_SECRET_ACCESS_KEY = os.environ['AWS_SECRET_ACCESS_KEY']
AWS_STORAGE_BUCKET_NAME = os.environ['AWS_STORAGE_BUCKET_NAME']
# AWS_S3_SECURE_URLS = False #turns off https for static files (necessary)

# Used …
Run Code Online (Sandbox Code Playgroud)

django django-storage django-compressor

5
推荐指数
1
解决办法
2015
查看次数

从内联css中删除查询字符串

我在我的小网站上使用django压缩器,我不想在图像上使用查询字符串.例如images/header.png?9e1ed2cd7d15

有没有办法禁用它?

django query-string django-compressor

4
推荐指数
1
解决办法
508
查看次数

使用{%static%}进行Django压缩

我正在努力使django压缩工作,但我相信它不起作用因为我的{% static %}使用.

我的模板是(我正在使用pyjade,但无关紧要):

- load staticfiles
- load compress

| {% compress css %}
link(rel="stylesheet", href="{% static 'less/bootstrap.css' %} ")
link(rel="stylesheet", href="{% static 'timepicker/css/bootstrap-timepicker.min.css'%}")
link(rel="stylesheet", href="{% static 'leaflet/addons/locatecontrol/L.Control.Locate.css' %} ")
link(rel="stylesheet", href="http://cdn.leafletjs.com/leaflet-0.6.4/leaflet.css")
link(href='//api.tiles.mapbox.com/mapbox.js/v1.3.1/mapbox.css', rel='stylesheet')
| {% endcompress %}
Run Code Online (Sandbox Code Playgroud)

还是我的settings.py的一部分:

PROJECT_DIR = os.path.dirname(os.path.realpath(__file__))

STATIC_ROOT = os.path.join(PROJECT_DIR, '../static')
STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(PROJECT_DIR, 'media'),
)

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    #'django.contrib.staticfiles.finders.DefaultStorageFinder',
    'compressor.finders.CompressorFinder',
)

COMPRESS_URL = STATIC_URL
COMPRESS_ROOT = STATIC_ROOT
COMPRESS_STORAGE = "staticfiles.storage.StaticFileStorage"

INSTALLED_APPS = (....,'compressor',....)
Run Code Online (Sandbox Code Playgroud)

即使我$ …

django django-static django-staticfiles django-compressor

4
推荐指数
1
解决办法
3810
查看次数

Django Compressor 无法在生产环境中工作

我想使用 django_compressor 但它在我的生产环境中不起作用。

在开发 ( DEBUG=True) 中,它正在工作并创建了.sass-cache&CACHE文件夹。

我的settings.py

DEBUG = False
TEMPLATE_DEBUG = False
INSTALLED_APPS = (
    ...,
    'django.contrib.staticfiles',
    'compressor',
    'myapp',
)
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'com.app.static')?
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'compressor.finders.CompressorFinder',
)
COMPRESS_ENABLED = True
COMPRESS_ROOT = STATIC_ROOT
COMPRESS_PRECOMPILERS = (
    ('text/x-scss', 'sass --scss {infile} {outfile}'),
)
MEDIA_URL = '/media/'
Run Code Online (Sandbox Code Playgroud)

scss 文件将模板目录放在 app.scss 文件中。

{% load staticfiles %}
{% load compress %}
<html> …
Run Code Online (Sandbox Code Playgroud)

python django django-compressor

4
推荐指数
2
解决办法
3906
查看次数

使用django_compressor压缩文件到gzip

我使用django_compressor来压缩我的js和css文件.它成功创建组合文件.但是这个应用程序也允许压缩文件.要启用此功能,我创建了

COMPRESS_STORAGE = 'compressor.storage.GzipCompressorFileStorage'
Run Code Online (Sandbox Code Playgroud)

在我的settings.py中.在压缩器工作目录中,现在有用于css和js的gzip文件.但是在用firebug检查html后,看起来gzip文件在渲染过程中不会出现.我该怎么改变它?

django gzip django-templates django-compressor

3
推荐指数
1
解决办法
2716
查看次数

如何在Django项目中使用咖啡脚本?

我是Django的新开发人员,我想在我的虚拟项目中使用一些CoffeeScript.但是,关于这个主题的文档并不好,我想从专家那里了解哪个是最好的选择.

我正在寻找像压缩机这样的可能性,但它仍然很困惑.我真的很感激一些建议.

提前致谢.

django coffeescript django-compressor

3
推荐指数
1
解决办法
1796
查看次数

强制django_compressor重新编译css/less文件

我们让用户将自己的自定义css/less上传到我们的django应用程序.

我们所有的css/less文件都是由django_compressor "on-the-fly" 压缩的.

最初部署应用程序时,所有css文件都将移动到该collect-static目录.

当用户上传自定义css样式时,它们会替换collect-static目录中较少的文件之一.

问题是只有在重新加载apache时才会出现更改,因此django-compressor会生成一个新的css文件.

有没有办法强制django-compressor重新生成它的编译和缓存文件?触发sudo services apache2 reloaddjango应用程序级别我感到不舒服.

apache django apache2 django-compressor

3
推荐指数
1
解决办法
4592
查看次数

在将django-storage和django-compressor一起使用时尝试压缩静态文件时出错

我已经设置了一个AWS S3存储桶,以便使用应用程序django-storage在远程CDN中传输我的静态文件,一切正常,直到我尝试压缩我的静态文件,然后使用django_compressor上传到S3.

我根据django-storages的django_compressor文档设置了所有变量(https://django_compressor.readthedocs.org/en/latest/remote-storages/index.html)

我使用'manage.py collectstatic'上传了S3中的所有文件,然后:

当我'manage.py compress'时,我收到此错误:

CommandError: An error occured during rendering ../templates/base.html: 'https://my_bucket.s3.amazonaws.com/css/bootstrap.2.3.1.css' isn't accessible via COMPRESS_URL ('https://my_bucket.s3-external-3.amazonaws.com/') and can't be compressed
Run Code Online (Sandbox Code Playgroud)

我的设置有什么问题?

这是我的django-storages和django_compressor的settings.py配置:

COMPRESS_URL = 'https://mybucket_name.s3-external-3.amazonaws.com/'
STATIC_URL = COMPRESS_URL
DEFAULT_FILE_STORAGE = 'my_project.boto_custom.CachedS3BotoStorage'

AWS_ACCESS_KEY_ID = 'XXX'
AWS_SECRET_ACCESS_KEY = 'XXX'
AWS_STORAGE_BUCKET_NAME = 'mybucket_name'

COMPRESS_ROOT = STATIC_ROOT

COMPRESS_STORAGE = 'my_project.boto_custom.CachedS3BotoStorage'
STATICFILES_STORAGE = 'my_project.boto_custom.CachedS3BotoStorage'

COMPRESS_OFFLINE = True
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助

python django amazon-s3 django-storage django-compressor

3
推荐指数
1
解决办法
1940
查看次数

Nodeenv 抛出 no python virtualenv is available

我有 python virtualenv 并尝试安装它抛出的nodeenv

"no python virtualenv is available"

在我激活的 python 虚拟环境中 . bin/activate

我运行以下命令

pip install nodeenv

nodeenv -p
Run Code Online (Sandbox Code Playgroud)

它会抛出错误...我目前正在尝试使用 django-compressor 安装 less

python django virtualenv django-compressor

3
推荐指数
1
解决办法
2330
查看次数

为什么S3上的压缩文件返回403 Forbidden错误?

我正在使用django-compressor和django-storage来在S3上提供我的压缩文件(使用这些说明:http://django_compressor.readthedocs.org/en/latest/remote-storages/#using-staticfiles).它在运行"compress"管理命令后最初工作得很好,但大约一小时后,压缩的css和js文件返回403 Forbidden错误,即使我没有对文件进行任何更改.我似乎无法隔离问题,所以任何帮助将不胜感激.

以下是我使用的设置:

COMPRESS_ENABLED = True  
COMPRESS_URL = "http://mybucket.s3.amazonaws.com/"  
COMPRESS_STORAGE = 'sm.storage.CachedS3BotoStorage'  
COMPRESS_YUI_BINARY = os.path.join(PROJECT_ROOT, 'jars/yuicompressor-2.4.7.jar')  
COMPRESS_CSS_FILTERS = ['compressor.filters.yui.YUICSSFilter',  
'compressor.filters.css_default.CssAbsoluteFilter']  
COMPRESS_JS_FILTERS = ['compressor.filters.yui.YUIJSFilter',]  
COMPRESS_OFFLINE = True  

STATICFILES_STORAGE = COMPRESS_STORAGE  
STATIC_URL = COMPRESS_URL  
STATIC_ROOT = '/path/to/static/'  
STATICFILES_DIRS = (  
os.path.join(PROJECT_ROOT, 'static'),  
)  

DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage' # I'm using this for uploaded media  
AWS_ACCESS_KEY_ID = 'myaccesskey'  
AWS_SECRET_ACCESS_KEY = 'mysecretkey'  
AWS_STORAGE_BUCKET_NAME = 'mybucket'  
AWS_S3_FILE_OVERWRITE = True  

AWS_HEADERS = {  
'Cache-Control': 'public, max-age=31536000', #(1 year)  
}  
Run Code Online (Sandbox Code Playgroud)

更新:当COMPRESS_OFFLINE为True时,这似乎只是一个问题.我将其设置为False,并且在初始请求期间创建的压缩文件正常工作,并且已经超过一个小时.但是,我更喜欢使用管理命令预压缩这些文件.

django amazon-s3 boto django-staticfiles django-compressor

2
推荐指数
1
解决办法
1547
查看次数