django中用于静态文件管理的高度自以为是的drop-in库
django-simplestatic的Python项目详细描述
django simplestatic是一个固执己见的django应用程序,它使得 以极低的配置处理静态媒体,只要:
- 您将静态媒体存储在一个目录中,而不是每个应用程序旁边。
- 您希望您的文件从s3提供,而不是从您自己的服务器。
- 您想使用google闭包编译器来压缩javascript。
- 您希望提前压缩javascript,而不是在 请求。
- 你不需要像less或scss那样使用任何花哨的css预编译器。(这个 可能会随着我个人喜好的改变而改变。)
如果上面的任何一个都不成立,那么这个库可能不适用于 你。也就是说,如果以上这些对你来说都是真的,那么这个应用程序将 可能是处理静态媒体的最简单和最好的方法。
安装
- pip install django simplestatic
- 将“simplestatic”添加到已安装的应用程序中:
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_url函数并执行它 在urlpatterns的末尾:
fromsimplestatic.urlsimportsimplestatic_debug_urlsurlpatterns=patterns('',# ... all of your url patterns right here)+simplestatic_debug_urls()
- 在模板中导入并使用simplestatic模板 标签,可能看起来像这样:
{%loadsimplestatic_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>
- 在推送代码之前,请运行静态同步管理命令 压缩任何css和js并将整个目录上传到s3:
python manage.py static_sync
高级配置
即使在绝大多数情况下,你只需要做 如上所述,django simplestatic提供了许多设置,您可以 想调整一下。这里提供了每个设置的参考
所需设置
- 简单目录:
- 存储所有静态媒体的目录。
- AWS访问密钥:
- 您的亚马逊网络服务访问密钥。
- aws_secret_access_密钥:
- 您的亚马逊网络服务密钥。
- aws_storage_bucket_name:
- 存储和提供所有静态媒体的s3存储桶。
可选设置
- 简单调试:(默认为调试)
- 确定是否使用 上传到s3的文件。如果设置为true,则 将改为提供文件的版本。你不该碰的 默认情况下,它设置为与django调试值相同的值。
- 简单调试路径:(默认为“static/”)
- 在开发期间为静态媒体提供服务的url路径。
- 简单自定义域:(默认为s3子域url)
一个自定义域,可从中为生产中的静态媒体提供服务。为了 例如,您可能希望在s3前面使用cloudfront作为cdn 桶,可以通过
SIMPLESTATIC_CUSTOM_DOMAIN='asdfasdf.cloudfront.net'
- simplestatic_compressed_dir:(默认为“compressed”)
s3中用于放置压缩和缩小版css的url路径 还有js。
例如,在默认情况下,如果设置为“compressed”,则 css和js可能位于如下位置之一:
http://example.s3.amazonaws.com/compressed/6bf0c67b74b26425832a17bbf27b9cb9.csshttp://example.s3.amazonaws.com/compressed/97a548fc6b62d5bb9f50e6a95b25d8db.js
- 闭包编译级别:(默认为“简单优化”)
google closure编译器编译级别选项。见下表 第页了解更多信息:
https://developers.google.com/closure/compiler/docs/compilation_levels
- closure_compiler_命令:(默认为“java-jar/path/to/supplied/closure.jar”)
- 运行google closure编译器所需的命令。