我试图在受限制的OpenShift环境中部署Django应用程序,这需要将静态文件放置在wsgi/public/static
中。但是,我做了大量的研究,并且认为它们必须放入wsgi/static
。Openshift Django - 你可以使用不同于wsgi/static的目录吗?
是否可以更改此目录?
不幸的是,环境只有白名单/public
是可访问的,所有其他URL将被重定向到另一个域上的SSO登录,因此我认为您不能使用简单的URL重写。
我试图在受限制的OpenShift环境中部署Django应用程序,这需要将静态文件放置在wsgi/public/static
中。但是,我做了大量的研究,并且认为它们必须放入wsgi/static
。Openshift Django - 你可以使用不同于wsgi/static的目录吗?
是否可以更改此目录?
不幸的是,环境只有白名单/public
是可访问的,所有其他URL将被重定向到另一个域上的SSO登录,因此我认为您不能使用简单的URL重写。
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