在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
部署静态文件也可以看看 有关使用的简介django.contrib.staticfiles,请参阅 管理静态文件(例如,图像,JavaScript,CSS)。 在生产中提供静态文件将静态文件投入生产的基本概述包括两个步骤:collectstatic更改静态文件时运行命令,然后安排将收集的静态文件目录(STATIC_ROOT)移至静态文件服务器并提供服务。根据 STATICFILES_STORAGE,可能需要手动将文件移动到新位置,否则类的post_process方法Storage可能会解决这个问题。 当然,与所有部署任务一样,细节在于魔鬼。每个生产设置都会有所不同,因此您需要调整基本轮廓以适合您的需求。以下是一些可能有用的常见模式。 从同一服务器提供站点和您的静态文件如果要从已经为您的站点提供服务的同一台服务器提供静态文件,则该过程可能类似于:
您可能希望自动化此过程,尤其是当您有多个Web服务器时。 从专用服务器提供静态文件大多数较大的Django站点使用单独的Web服务器(即未同时运行Django的Web服务器)来提供静态文件。该服务器通常运行其他类型的Web服务器-速度更快,但功能较少。一些常见的选择是:
配置这些服务器不在本文档的讨论范围内。检查每个服务器各自的文档以获取指示。 由于您的静态文件服务器不会运行Django,因此您需要修改部署策略,使其类似于:
从云服务或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参考。 |
请发表评论