JSRUN 用代码说话

部署静态文件

编辑教程

部署静态文件

也可以看看有关使用的简介django.contrib.staticfiles,请参阅 管理静态文件(例如,图像,JavaScript,CSS)。

在生产中提供静态文件

将静态文件投入生产的基本概述包括两个步骤:collectstatic更改静态文件时运行命令,然后安排将收集的静态文件目录(STATIC_ROOT)移至静态文件服务器并提供服务。根据 STATICFILES_STORAGE,可能需要手动将文件移动到新位置,否则类的post_process方法Storage可能会解决这个问题。

当然,与所有部署任务一样,细节在于魔鬼。每个生产设置都会有所不同,因此您需要调整基本轮廓以适合您的需求。以下是一些可能有用的常见模式。

从同一服务器提供站点和您的静态文件

如果要从已经为您的站点提供服务的同一台服务器提供静态文件,则该过程可能类似于:

  • 将您的代码推送到部署服务器。
  • 在服务器上,运行collectstatic以将所有静态文件复制到中STATIC_ROOT。

配置您的Web服务器以STATIC_ROOT 在URL下提供文件STATIC_URL。例如, 这是使用Apache和mod_wsgi的方法。

您可能希望自动化此过程,尤其是当您有多个Web服务器时。

从专用服务器提供静态文件

大多数较大的Django站点使用单独的Web服务器(即未同时运行Django的Web服务器)来提供静态文件。该服务器通常运行其他类型的Web服务器-速度更快,但功能较少。一些常见的选择是:

  • Nginx的
  • 精简版的Apache

配置这些服务器不在本文档的讨论范围内。检查每个服务器各自的文档以获取指示。

由于您的静态文件服务器不会运行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设置即可。

JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。 大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
支付宝
9.99
无法付款,请点击这里
金额: 0
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟