0

パスを取得するために Python を使用して静的/メディア ファイルの設定を定義できるようにしたいので、開発マシンとサーバーで異なる設定は必要ありません。

したがって、これらの設定があります。

import os
from unipath import Path

### PATH CONFIGURATION
# Absolute filesystem path to the top-level project folder
SITE_ROOT = Path(__file__).ancestor(3)

### MEDIA CONFIGURATION
MEDIA_ROOT = SITE_ROOT.child('media')
MEDIA_URL = '/media/'
### END MEDIA CONFIGURATION

### STATIC CONFIGURATION
STATIC_ROOT = SITE_ROOT.child('static')
STATIC_URL = '/static/'

# Additional locations of static files
STATICFILES_DIRS = os.path.join(SITE_ROOT, 'static'),

私の問題は、ローカルで静的ファイルをロードせず、端末STATICFILES_DIRSSTATICFILES_ROOT.

Python にこのようなパスをロードさせることは可能ですか、それとも時間を無駄にしていますか?

4

3 に答える 3

3

次のようにします。

import os
settings_dir = os.path.dirname(__file__)
PROJECT_ROOT = os.path.abspath(os.path.dirname(settings_dir))

MEDIA_ROOT = os.path.join(PROJECT_ROOT, 'media/')
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static/')

STATICFILES_DIRS = (
    os.path.join(PROJECT_ROOT, 'static/'),
)

それはうまくいくはずです。それが役に立てば幸い!

于 2013-05-17T18:06:30.873 に答える
2

他の両方の回答に対して+1。たくさん入力するのに飽きたらos.path.bla、設定ファイルの先頭に配置できるショートカットがあります (または他の場所からインポートできます)。

def rel(*x):
    return os.path.join(os.path.abspath(os.path.dirname(__file__)), *x)

STATICFILES_DIRS = (
    rel('static'),
)
于 2013-05-17T19:07:08.753 に答える