Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 181|回复: 0

选项 2:带有服务的 Django

[复制链接]

1

主题

1

帖子

5

积分

新手上路

积分
5
发表于 2023-9-21 11:41:04 | 显示全部楼层 |阅读模式
本帖最后由 RAHIM24 于 2023-9-21 19:20 编辑

我的指导思想是使用工具来做他们最擅长的事情。Django 是一个令人惊叹的框架,它为用户身份验证、服务器端渲染、使用模型和表单、管理功能以及构建 Web 应用程序的许多其他重要方面提供了开箱即用的出色工具。然而,在我看来,它处理静态资产和媒体文件的工具不太适合在可扩展的网站上进行生产。Django 核心开发人员认识到许多人选择替代方法来在生产中处理这些文件;当你这样做时,框架非常擅长为你让路。


大多数用于一般用途的 Django 站点都希望合并静   电话号码清单  态资源并使用这些非 Django 特定方法处理媒体文件。 CDN 上的静态资产 # 虽然中小型项目可以不用 CDN,但 CDN(内容交付网络)易于使用,并且可以提高任何规模的应用程序的性能。CDN 是一个服务器网络,通常分布在全球范围内,用于分发和提供 Web 内容(主要是静态资产)。流行的 CDN 包括Cloudflare 要使用 CDN,您需要上传静态文件,然后在您的应用程序中引用它们,如下所示:复制 此过程很容易与 Django 部署脚本集成。运 collectstatic命令后,将生成的目录复制到您的 CDN(该过程根据您使用的服务而有很大不同),然后从 Django 部署包中删除静态资产。 在开发中,您将需要访问与生产中不同的静态资产副本。





这样,您可以在本地进行更改,而不会影响生产站点。您可以使用本地资产或运行 CDN 的第二个实例来传送文件。使用一些自定义变量(例如 )配置CDN_URL,并在模板中使用该值以确保您在开发和生产中使用正确版本的资产。 最后一点是,许多 CSS 和 JavaScript 库都有大多数网站都可以使用的免费 CDN。例如,如果您要加载 Bootstrap 4 或 underscore.js,则可以通过使用这些公共 CDN 来跳过在开发中使用自己的副本的麻烦以及在生产中提供自己的副本的费用。 具有专用文件存储的媒体文件 # 任何生产 Django 站点都不应该将用户文件存储在运行该站点的服务器上某处的简单/media/文件夹中。以下是不这样做的众多原因中的三个: 如果您需要通过添加多个服务器来扩展站点,则需要某种方法在这些服务器之间复制和同步上传的文件。 如果服务器崩溃,源代码会在版本控制系统中备份,但默认情况下不会备份媒体文件,除非您将服务器配置为这样做,但为此,您最好使用专用的文件存储。 如果发生恶意活动,最好将用户上传的文件保存在与运行应用程序的服务器不同的服务器上,但这并不能消除验证用户上传的文件的要求。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Discuz! X

GMT+8, 2024-9-21 16:39 , Processed in 0.015625 second(s), 18 queries .

Powered by Discuz! X3.5

Copyright © 2001-2022 Tencent Cloud.

快速回复 返回顶部 返回列表