2015-09-18 29 views
0

我试图在受限制的OpenShift环境中部署Django应用程序,这需要将静态文件放置在wsgi/public/static中。但是,我做了大量的研究,并且认为它们必须放入wsgi/staticOpenshift Django - 你可以使用不同于wsgi/static的目录吗?

是否可以更改此目录?

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

回答

0

django没有必要把你的文件放在特定的目录中,如果你有权限,它可以放在你的文件系统的任何地方,它不会与其他东西相冲突。

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

这是在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

相关问题