0

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

さらに奇妙なことに、Satchmo は元の画像とそれが生成するサムネイルの両方を me/media/ディレクトリと/media/images/ディレクトリの両方に保存します

関連する設定は次のとおりです。

# 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 ファイルを 3 回チェックしましたが、「メディア」という単語がどこにも言及されていないため、設定のオーバーライドはないと確信しています。

それが役立つ場合、私は Windows を使用していますが、パスには適切な UNIX 表記をすべて使用しています。

4

2 に答える 2

1

この問題は、settings.py ファイルのスラッシュ方向の問題であることが判明しました。

通常、relative_path()settings.py ファイルに関数を作成して、簡単に設定できるようにします。

MEDIA_ROOT = absolute_path('media')

私が使用していた Satchmo のバージョンでは、代わりに 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('\\', '/')
于 2009-04-11T00:00:29.437 に答える
1

これは Windows のみのバグです。私は Windows で Satchmo アプリを開発していますが、これを実行しますが、Linux ボックスに展開すると問題なく動作します。Windows ボックスでテストを行っているときに、データベースにアクセスしてパスを編集するだけです。

于 2009-04-09T16:10:00.293 に答える