我试图在受限制的OpenShift环境中部署Django应用程序,这需要将静态文件放在wsgi/public/static
中。但是,我做了很多研究,并且相信它们必须放在wsgi/static
。
是否可以更改此目录?
不幸的是,环境只有白名单/public
可供访问,所有其他网址将被重定向到另一个域的SSO登录,因此我不认为您可以使用简单的URL重写。
答案 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
进行更改后收集