在openshift上使用.htaccess文件后丢失django管理静态文件

时间:2012-08-22 10:29:09

标签: python django redhat django-staticfiles openshift

我不确定发生了什么,但我遵循了一些我在互联网上找到的关于通过使用mod_rewrite通过静态文件夹(从$ OPENSHIFT_DATA_DIR提供)提供媒体文件的指南。现在唯一的问题是,我的管理员文件不再获得服务,我正在努力解决它。

RewriteEngine On
RewriteRule ^application/media/(.+)$ /static/$1 [L]

以上版本适用于我的用户上传的/ media /文件,但是在提供的管理文件方面存在很大问题。他们似乎刚从/ static / admin /.

停止服务

2 个答案:

答案 0 :(得分:0)

我已经设法通过在构建文件中添加一些命令来实现这一点。现在,这将直接将所有管理文件复制到/ static / admin。

它似乎并不像现在这样干净,但现在才会这样做,直到有人能够对这个问题进行改进。

if [ ! -d $OPENSHIFT_REPO_DIR/wsgi/static/admin ]; then
mkdir $OPENSHIFT_REPO_DIR/wsgi/static/admin
fi

cp $OPENSHIFT_GEAR_DIR/virtenv/lib/python2.6/site-packages/Django-1.4.1-py2.6.egg/django/contrib/admin/static/admin $OPENSHIFT_REPO_DIR/wsgi/static/

答案 1 :(得分:0)

每当部署时,都应该从django运行collectstatic命令。这会将所有应用程序中必要的静态文件复制到正确的目录中。

我有一个django 1.6的github示例。它是setttings.py设置和action_hook的组合。

https://github.com/jfmatth/openshift-django16

HTH