django中用于静态文件管理的高度自以为是的drop-in库

django-simplestatic的Python项目详细描述


django simplestatic是一个固执己见的django应用程序,它使得 以极低的配置处理静态媒体,只要:

  • 您将静态媒体存储在一个目录中,而不是每个应用程序旁边。
  • 您希望您的文件从s3提供,而不是从您自己的服务器。
  • 您想使用google闭包编译器来压缩javascript。
  • 您希望提前压缩javascript,而不是在 请求。
  • 你不需要像less或scss那样使用任何花哨的css预编译器。(这个 可能会随着我个人喜好的改变而改变。)

如果上面的任何一个都不成立,那么这个库可能不适用于 你。也就是说,如果以上这些对你来说都是真的,那么这个应用程序将 可能是处理静态媒体的最简单和最好的方法。

安装

  1. pip install django simplestatic
  2. 将“simplestatic”添加到已安装的应用程序中:
INSTALLED_APPS=('django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.sites','django.contrib.admin',# ... all your installed apps'simplestatic',)
  1. 在设置文件中,设置以下值:
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'
  1. 在urls.py中,导入simplestatic_debug_url函数并执行它 在urlpatterns的末尾:
fromsimplestatic.urlsimportsimplestatic_debug_urlsurlpatterns=patterns('',# ... all of your url patterns right here)+simplestatic_debug_urls()
  1. 在模板中导入并使用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>
  1. 在推送代码之前,请运行静态同步管理命令 压缩任何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编译器所需的命令。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
mdb jar中的java包外部jar   java SoapFault错误代码和请求库ksoap2中的soap   java推送程序在一次推送中复制和接收多个数据   使用Quarkus的Apache Camel中的java断路器   java调用未知类的方法   java如何向fastmonacoeditor键入/发送值   使用Mockito3进行java单元测试。x随机失效   java JPA/Eclipselink@Cache expiry被忽略   java Sms文本未发送   java在jBPM中,以流程任务形式显示图像的方法是什么   java如何使用windows批处理文件逐个启动spring引导jar文件?   java从testng传递参数@factory。xml   java向Maven项目添加Richfaces   与Java编程的混淆   java计时器不工作   java如何删除我的工具栏上的空白   java如何将实体映射到现有图形?   java Apache CXF声明wsdl生成错误   java maven从错误的存储库下载   java如何将KEY_URL数据用于其他活动