Django静态文件管理的高效库
项目描述
Django SimpleStatic是一个具有明确观点的Django应用程序,它通过极少的配置,使处理静态媒体变得非常简单,只要
您将静态媒体存储在一个目录中,而不是每个应用程序旁边。
您希望从S3而不是自己的服务器上提供文件。
您希望使用Google Closure Compiler压缩您的JavaScript。
您希望在请求之前而不是请求期间压缩javascript。
您不使用任何那些花哨的CSS预编译器,如LESS或SCSS。(这可能会随着我个人偏好的改变而改变。)
如果上述任何一个都不适用,那么这个库可能不适合您。话虽如此,如果上述所有都适用于您,那么这个应用程序可能是处理静态媒体最简单和最好的方式。
安装
pip install django-simplestatic
将‘simplestatic’添加到您的INSTALLED_APPS
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.admin',
# ... all your installed apps
'simplestatic',
)
在您的设置文件中,设置以下值
SIMPLESTATIC_DIR = '/path/to/your/static/media/directory'
AWS_ACCESS_KEY_ID = 'YOUR_ACCESS_KEY_HERE'
AWS_SECRET_ACCESS_KEY = 'YOUR_SECRET_KEY_HERE'
AWS_STORAGE_BUCKET_NAME = 'YOUR_STATIC_BUCKET_HERE'
在您的urls.py中,导入simplestatic_debug_urls函数并执行到urlpatterns的末尾
from simplestatic.urls import simplestatic_debug_urls
urlpatterns = patterns('',
# ... all of your url patterns right here
) + simplestatic_debug_urls()
在您的模板(或模板)中导入并使用simplestatic模板标记,可能看起来像这样
{% load simplestatic_tags %}
<head>
<title>I love django-simplestatic!</title>
{% simplestatic %}
{% compress_css "css/bootstrap.css" %}
{% compress_css "css/screen.css" %}
{% compress_js "js/jquery-1.9.1.js" %}
{% compress_js "js/global.js" %}
{% endsimplestatic %}
</head>
在您推送代码之前,运行static_sync管理命令压缩任何CSS和JS并将整个目录上传到S3
python manage.py static_sync
高级配置
尽管在绝大多数情况下,您只需执行上面提到的事项即可,但django-simplestatic提供了一系列可能需要调整的设置。以下是对每个设置的参考
必需设置
- SIMPLESTATIC_DIR
存储所有静态媒体的目录。
- AWS_ACCESS_KEY_ID
您的Amazon Web Services访问密钥。
- AWS_SECRET_ACCESS_KEY
您的Amazon Web Services秘密访问密钥。
- AWS_STORAGE_BUCKET_NAME
存储和提供所有静态媒体所在的S3存储桶。
可选设置
- SIMPLESTATIC_DEBUG: (默认为DEBUG)
一个布尔值,用于确定是否使用上传到S3的文件的最小化和压缩版本。如果设置为True,则将提供完整的开发版本。通常您不需要更改此设置,因为它默认与Django的DEBUG值相同。
- SIMPLESTATIC_DEBUG_PATH: (默认为‘static/’)
开发期间提供静态媒体的URL路径。
- SIMPLESTATIC_CUSTOM_DOMAIN: (默认为S3子域名URL)
生产环境中提供静态媒体的自定义域名。例如,您可能希望在S3存储桶前面使用CloudFront作为CDN,这可以通过以下方式实现
SIMPLESTATIC_CUSTOM_DOMAIN = 'asdfasdf.cloudfront.net'
- SIMPLESTATIC_COMPRESSED_DIR: (默认为‘compressed’)
S3中的URL路径,用于放置CSS和JS的压缩和精简版本。
例如,在默认情况下,如果将其设置为‘compressed’,您的CSS和JS可能位于以下位置之一
http://example.s3.amazonaws.com/compressed/6bf0c67b74b26425832a17bbf27b9cb9.css http://example.s3.amazonaws.com/compressed/97a548fc6b62d5bb9f50e6a95b25d8db.js
- CLOSURE_COMPILATION_LEVEL: (默认为‘SIMPLE_OPTIMIZATIONS’)
Google Closure Compiler的编译级别选项。更多信息请参阅以下页面
https://developers.google.com/closure/compiler/docs/compilation_levels
- CLOSURE_COMPILER_COMMAND: (默认为‘java -jar /path/to/supplied/closure.jar’)
运行Google Closure Compiler所需的命令。