我有一个由一个主网站和几个子网站组成的网站(还有更多子网站)。
问题是,主站点和子站点有相同的布局,使用相同的js等,所以我想问是否可以让所有站点共享一个静态文件夹?
静态文件夹为 130 mb。自动取款机。我发现每次创建新站点时都需要复制该文件夹有点多余。对于 200 个站点(一个有点现实的目标),重复文件将浪费 20 GB 空间。
那么有没有办法做到这一点?我知道这有点违背良好的 django 实践(不使用 collectstatic)
我有一个由一个主网站和几个子网站组成的网站(还有更多子网站)。
问题是,主站点和子站点有相同的布局,使用相同的js等,所以我想问是否可以让所有站点共享一个静态文件夹?
静态文件夹为 130 mb。自动取款机。我发现每次创建新站点时都需要复制该文件夹有点多余。对于 200 个站点(一个有点现实的目标),重复文件将浪费 20 GB 空间。
那么有没有办法做到这一点?我知道这有点违背良好的 django 实践(不使用 collectstatic)
在这种情况下,我会使用Amazon S3和CloudFront。您可以在运行 collect static 时使用django-storages透明地将所有静态文件上传到 S3 存储桶,方法是将默认文件上传机制替换为 boto + s3,如下所示:
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
正如@AdamKG 所说,如果所有这些站点共享相同的代码,但内容不同,那么最好使用Django-CMS或将这些站点移动到数据库记录中,而不是一遍又一遍地部署相同的代码。
AdamKG 给了我“正确”的答案——至少满足我的需要。当它更相关时,我可能会在某个时候转移到 S3。
“嗯,简单的黑客是符号链接和相关的。不过,你应该问的问题是,为什么你使用 django 项目作为一个似乎是(按数量计算 ~ 200)商品的单位。IOW:为什么这样做这些网站有单独的任何东西,包括静态媒体,而不仅仅是表格中的行?”