2009-04-09 10 views
0

私はDjangoとSatchmoを使っていくつかのローカル開発を行っています。管理者経由で製品イメージをローカルにアップロードすると、イメージへのパスは絶対パスとして表示され、適切な相対パスではなくドライブ文字で完了します。製品イメージをローカルにアップロードするとSatchmoで絶対URLが取得されるのはなぜですか?

ストレンジャーはまだ、サッチモは、元の画像と、それは私/media/ディレクトリと/media/images/ディレクトリ、私は彼らが行きたい後者の両方で発生したサムネイルの両方を節約できます。次のように

のrelavent設定は次のとおりです。

# path relative to the settings.py file 
DIRNAME = os.path.abspath(os.path.dirname(__file__).decode('utf-8')) 

MEDIA_ROOT = os.path.join(DIRNAME, 'media') 
MEDIA_URL = 'http://localhost:8000/' 
ADMIN_MEDIA_PREFIX = '/media/' 

私はトリプルがlocal_settings.pyファイルをチェックしており、言葉、それの「メディア」のどこかには言及されていないので、私はありませんがあると確信していますオーバーライドを設定します。

私が助けてくれれば、私はWindowsですが、自分のパスに適切なUNIX表記を使用しています。

答えて

1

問題は、settings.pyファイルのスラッシュの説明に問題があることが分かります。

私は簡単に設定することができますので通常、私は私のsettings.pyファイルにrelative_path()関数を作成:

MEDIA_ROOT = absolute_path('media') 

私が使っていたサッチモのバージョンではなく、設定DIRNAMEの使用を奨励:

DIRNAME = os.path.abspath(os.path.dirname(__file__).decode('utf-8') 

問題は、この技術を使用して、私のMEDIA_ROOTのような設定されていたました:

MEDIA_ROOT = os.path.join(DIRNAME, 'media') 

しかしこれはUnixのスラッシュの代わりにWindowsのバックスラッシュを使用していました。私はそれを解決しました:

MEDIA_ROOT = os.path.join(DIRNAME, 'media').replace('\\', '/') 
1

これはWindowsのみのバグです。私はWindows上でSatchmoアプリケーションを開発していますが、これはこれを行いますが、Linuxボックスにデプロイするとうまくいきます。私はデータベースに入って、Windowsのボックスでテストをしているときにそこのパスを編集するだけです。

関連する問題