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第三方库


热门话题
Java计数字符串中的符号数   如何将(Android)应用程序上下文传递给Java类?   arraylist中的java查找索引始终位于1   java如何在Grpc中通过MethodDescriptor的InputStream调用服务器?   java Netbeans、Glassfish部署问题   java在安卓上拖放一个按钮。。帮助   java Hibernate不从映射表填充数据   数组用户定义的文件读取函数导致NullPointerException Java   java组织。冬眠ErrorClassException:对象[id=null]不属于指定的子类   java中迭代破坏二叉树的算法   openssl如何通过java确保使用哪个私钥创建服务器证书   伏地魔项目的java对象映射   java这是JSlider中的一个bug吗?   java Spring究竟如何使用JDK代理?   java跨JVM分发订阅者   java Mockito void方法如何检查私有变量?   java如何在安卓 Studio中启用httpclient?   java软件设计原则:将您的收藏与处理对象分开?   java Exe包装的JavaFX应用程序(使用Launch4J)不会打开其他阶段   读取Java中可能被其他进程修改的文件