2009-12-02 31 views
8

私は自分のステージングサーバー上で私のdjangoサイトを移動しました。サイトの管理者側にはスタイリングがありません。以前はローカル開発時にはうまくいきました。シンボリックリンク、私はこれを行うことによってそれをしたDjango adminはスタイルがありません

sudo ln -s /var/www/sico/htdocs /usr/lib/python2.5/site-packages/django/contrib/admin/ 

しかし、それは何も私が試すことができる何も何もしていないですか?あなたが、あなたのDjangoのadminメディアディレクトリへのシンボリックリンクを作成する必要があり、

シンボリックリンク、Webサイトのルートフォルダに

+0

もhttp://stackoverflow.com/questions/1081596/django-serving-admin-media-files参照できますadmin/media

希望になると思います。 –

答えて

10

は、Webサーバーの設定によっては、あなたはそれを2つの方法のいずれかを実行することができますDjangoアプリの設定でADMIN_MEDIA_PREFIXという名前の名前を使用します。デフォルトでは/media/なので、Webルートフォルダにmediaから/usr/lib/python2.5/site-packages/django/contrib/admin/mediaというシンボリックリンクを作成します。 (シンボリックリンクの末尾にあるmediaはご自分の例では見つからないので、Django管理メディアはmediaサブディレクトリin contrib/admin`にあります)。

Apacheのエイリアス

本番サーバは、Apacheで、ルートの設定を変更することができた場合は、Djangoの管理メディアへのパスを設定するためにmod_aliasを使用することができます。繰り返しになりますが、あなたのADMIN_MEDIA_PREFIX/media/であると仮定すると、あなたはそうのようなエイリアスを設定することができます

<VirtualHost *:80> 
    Alias /media/ /usr/local/lib/python2.5/site-packages/django/contrib/admin/media/ 
</VirtualHost> 

このように、パス/media/の下のすべての要求は、そのディレクトリに解決されます。

Lighttpdやnginxなど、他のほとんどのサーバーでも同様の手法が存在します。 Apacheを使用していない場合は、サーバーのドキュメントを参照してください。


Apacheのmod_aliasを使用したソリューションは、おそらく展開するための最良のですが、シンボリックリンクのアプローチは、あまりにも同じようにうまく動作します。

ステージングサーバーでアプリケーションが動作した理由は、Djangoの内部Webサーバーで実行されていて、管理メディアディレクトリへのパスを自動的に解決できるためです。

+0

こんにちは、 " エイリアス/メディア/ /usr/local/lib/python2.5/site-packages/django/contrib/admin/media/ " go ?それはhttp.confファイルに入りますか? – DjangoRocks

+0

不思議なことに:はい、仮想ホストのエントリはApacheのhttpd.confファイルに入ります。 – Coderer

+1

@mipadi私はdjango 1と思います。4あなたは 'エイリアス/静的/管理者C:\ Python27 \ Lib \サイトパッケージ\ django \ contrib \ admin \静的\ admin'をする必要があります –

1

私はあなたがシンボリックリンクにラウンド間違った方法を作成したと思う - あなたが必要なもの

/あなたのコマンドがで....に/ contrib/adminにhtdocsシンボリックリンクを作成してい

sudo ln -s /usr/lib/python2.5/site-packages/django/contrib/admin/ /var/www/sico/htdocs/X 
のようなものです

ここで、XはADMIN_MEDIA_PREFIXにアクセスするために必要なものです。私は、デフォルトでは