Openshift Django - 你能使用与wsgi / static不同的目录吗?

时间:2015-09-18 06:24:59

标签: django openshift

我试图在受限制的OpenShift环境中部署Django应用程序,这需要将静态文件放在wsgi/public/static中。但是,我做了很多研究,并且相信它们必须放在wsgi/static

是否可以更改此目录?

不幸的是,环境只有白名单/public可供访问,所有其他网址将被重定向到另一个域的SSO登录,因此我不认为您可以使用简单的URL重写。

1 个答案:

答案 0 :(得分:0)

django中没有必要将您的文件放在特定目录中,如果您有权限,它可以放在您的文件系统中的任何位置,并且不会与其他内容冲突。

请记住,此目录适用于收集的静态文件,您不会将该目录保留在GIT存储库中。与您的项目一起提供服务的静态文件应该放在其他目录中,您应该使用./manage.py collectstatic将它们复制或链接到带有收集的静态文件的dir中。

这是在django中这样做的,因为每个可重用的应用程序都可以提供它自己的一组静态文件,所有这些都必须以某种方式从一个位置提供,因此它们将被复制或链接到收集文件的目录中。

所以你在django中的配置应该是这样的:

STATIC_ROOT = '/path/to/wsgi/public/static'
STATIC_URL = '/public/static'

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static/'), # or other path in your project, not necessary defined using BASE_DIR, but it is good approach
)

所有静态文件都应在BASE_DIR中变为静态文件,并应在使用./manage.py collectstatic进行更改后收集