由于您的静态文件服务器不会运行Django,因此您需要修改部署策略,使其类似于:
- 当您的静态文件更改时,请在collectstatic本地运行。
- 将您的本地推STATIC_ROOT送到静态文件服务器,进入正在服务的目录。rsync是此步骤的常见选择,因为它只需要传输已更改的静态文件的位。
从云服务或CDN服务静态文件
另一个常见的策略是为来自Amazon S3和/或CDN(内容交付网络)等云存储提供商的静态文件提供服务。这使您可以忽略提供静态文件的问题,并且通常可以使网页加载速度更快(尤其是在使用CDN时)??。
使用这些服务时,基本工作流程看起来与上面类似,除了rsync需要将静态文件传输到存储提供程序或CDN 而不是用于将静态文件传输到服务器之外。
您可以通过多种方式执行此操作,但是如果提供程序具有API,则可以使用自定义文件存储后端 将CDN与Django项目集成。如果您已经编写或正在使用第三方的自定义存储后端,则可以collectstatic通过设置STATICFILES_STORAGE存储引擎来告诉您使用它。
例如,如果您已经编写了一个S3存储后端,则 myproject.storage.S3Storage可以将其用于:
STATICFILES_STORAGE = 'myproject.storage.S3Storage'
完成此操作后,所有您需要做的就是运行collectstatic,您的静态文件将通过存储包推送到S3。如果以后需要切换到其他存储提供商,则只需更改STATICFILES_STORAGE设置即可。
有关如何编写这些后端之一的详细信息,请参阅《 编写自定义存储系统》。有可用的第三方应用程序为许多常用文件存储API提供存储后端。djangopackages.org的概述是一个很好的起点。
了解更多
有关其中包含的所有设置,命令,模板标记和其他部分的完整详细信息django.contrib.staticfiles,请参见staticfiles参考。
标签:Django
相关阅读 >>
更多相关阅读请进入《Django》频道 >>

Python编程 从入门到实践 第2版
python入门书籍,非常畅销,超高好评,python官方公认好书。