0

openshift django インスタンスで collectstatic オプションを使用したいのですが、不要なファイルが大量にコピーされているようです。

出力行の例

Pretending to copy '/var/lib/openshift/519017e25973ca1ead00035b/app-root/runtime/dependencies/python/virtenv/lib64/python2.7/site-packages/Django-1.5.2-py2.7.egg/django/contrib/contenttypes/locale/da/LC_MESSAGES/django.po'

ここにsettings.pyからのいくつかのスニペットがあります

if 'OPENSHIFT_HOMEDIR' in os.environ:
    # Python dotted path to the WSGI application used by Django's runserver.
    WSGI_APPLICATION = 'wsgi.application'
    DEBUG = False
    DB_ROOT = os.environ['OPENSHIFT_DATA_DIR']
    STATICFILE_DIR = os.path.join(os.environ['OPENSHIFT_REPO_DIR'], 'wsgi', 'static', 'mysite')
    TEMPLATE_DIR = os.path.join(os.environ['OPENSHIFT_REPO_DIR'], 'wsgi', 'templates')
    STATIC_ROOT = os.path.join(os.environ['OPENSHIFT_REPO_DIR'], 'wsgi', 'static')
STATICFILES_DIRS = (STATICFILE_DIR,)

「ls -R $OPENSHIFT_REPO_DIR/ | grep virtualenv」で結果が得られない

ls -R $OPENSHIFT_REPO_DIR../.. | grep virtenv は古い virtenv の束を表示します

また、これは奇妙に思えます: > ls -la $OPENSHIFT_HOMEDIR

drwxr-xr-x.  11 xxxx                     xxxx    4096 Jan 26 11:45 python
lrwxrwxrwx.   1 root                     root      50 Jun  7  2013 python-2.7 -> /var/lib/openshift/519017e25973ca1ead00035b/python
4

3 に答える 3

0

Django では、STATIC_ROOT は、実行時に静的ファイルがコピーされる場所ですcollectstatic。STATICFILES_DIRS は、collectstatic が収集する静的ファイルを探す場所です。あなたの場合、 STATIC_ROOT が に設定され、 STATICFILES_DIRS が$OPENSHIFT_REPO_DIR/wsgi/staticSTATICFILE_DIR に設定されてい$OPENSHHIFT_REPO_DIR/wsgi/staticます。

したがって、からファイルをコピーしwsgi/staticて配置していwsgi/staticます。これは、同じファイルを何度もコピーする一種の循環状況を引き起こしているようです。

STATIC_ROOT が STATICFILES_DIRS に含まれていないことを確認してください。

于 2015-11-12T05:29:46.977 に答える
0

virtualenv がどういうわけか (おそらくシンボリック リンクを介して)STATICFILE_DIRS設定に含まれているようです。続けると、そこにあるはずls -RSTATIC_ROOT何かが見えますか?

于 2015-01-26T07:03:41.020 に答える