16

Windows XP / Django / apache/mod_pythonがローカルホストで動作しています。管理CSSがレンダリングされないことを除いて、すべての部分が機能しています。管理者は機能しますが、HTMLフォーマットは機能しません。私は以下に追加しました:

settings.py

  INSTALLED_APPS
  'django.contrib.admin',

urls.py

  from django.contrib import admin
  admin.autodiscover()
  (r'^admin/(.*)', admin.site.root),

conf/http.conf

  <Location "/"> 
    SetHandler python-program
    PythonPath "['C:/django'] + sys.path"
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE mysite.settings
    PythonDebug On
  </Location>

  <Location "/cpssite/"> 
    SetHandler python-program
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE myapplication.settings
    PythonInterpreter /myapplication
    PythonDebug On
  </Location>

私は困惑しています。どこかに追加すべきコードは他にありますか?

4

5 に答える 5

27

ADMIN_MEDIA_PREFIXは存在しますか?MEDIA_URLとは違いますか?末尾のスラッシュを含めましたか?Apacheは管理メディアを正しく提供するように処理されていますか?

デフォルトのDjango構成では、管理メディアは{Django install dir} / contrib / admin/mediaにあります。ADMIN_MEDIA_PREFIXのデフォルトは/media/です。したがって、Apache構成に次のようなものを追加する必要があります。

Alias /media/ /path/to/django/contrib/admin/media/

これにより、Apacheにmysite.com/media/css/whatever.cssのリクエストが/path/to/django/contrib/admin/media/css/whatever.cssを提供することを意味し、問題が解決することが通知されます。

于 2009-01-26T17:47:28.767 に答える
7

私は同じ問題を抱えていましたが、http.conf の次のエントリは問題なく動作しました。

<Directory "Path-to-python/Lib/site-packages/django/contrib/admin/media/"> 
    AllowOverride None 
    Options None 
    Order allow,deny 
    Allow from all 
</Directory> 

Alias /media/ "Path-to-Python/Lib/site-packages/django/contrib/admin/media/"

<Location "/mysite/">
    SetHandler python-program
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE mysite.settings
    PythonOption django.root /mysite
    PythonInterpreter mysite
    PythonDebug On
    PythonPath "['C:/Python/Django/apps'] + sys.path"
</Location>
于 2009-02-06T12:03:07.027 に答える
2

これが私のdjango固有のApache構成です。django は、無効になっているメディアを除いて、サイト (場所 /) へのすべての受信 URL を処理し、データは django のメディア ディレクトリから提供されることに注意してください。

<Location "/">
  SetHandler python-program
  PythonHandler django.core.handlers.modpython
  SetEnv DJANGO_SETTINGS_MODULE mysite.settings
  #PythonOption django.root /
  PythonDebug On
  PythonPath "['e:/dj'] + sys.path"
</Location>

Alias /media  e:/dj/django-trunk/django/contrib/admin/media/
<Location "/media">
  SetHandler None
</Location>
于 2009-04-08T06:05:28.970 に答える
1

管理メディアに/mediaディレクトリを使用させたくない場合は、ADMIN_MEDIA_PREFIX ='admin_media'を指定してから、Webサーバーから/admin_media/への呼び出しを/usr/ share /pyshared/にリダイレクトするリンク/エイリアスを作成できます。実稼働サーバー用のdjango/contrib / admin / media(OSによって異なります)...

于 2009-11-23T16:18:25.453 に答える
1

質問は昔からのものなので、これは適切な答えではないかもしれませんが、私と同じようにここで偶然つまずいた人を助けるためにこの情報を載せています。バージョン1.4以降、ADMIN_MEDIA_PREFIX設定は非推奨になりました。バージョンが1.4以上の静的ファイルとメディアファイルを提供する方法については、こちらで説明しています。

https://docs.djangoproject.com/en/dev/releases/1.4/#django-contrib-admin

https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/modwsgi/#serving-files

https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/modwsgi/#serving-the-admin-files

基本的には4つのステップでセットアップできます-

  1. サイトのすべての静的ファイルを提供するディレクトリを指すようにSTATIC_ROOTを設定します
  2. 静的コンテンツを提供するSTATIC_URLを設定します
  3. manage.pycollectstaticを実行します
  4. STATIC_ROOTからのSTATIC_URLのリクエストを処理するようにWebサーバーを構成します

メディアファイルについても同じ

于 2012-08-18T12:08:21.027 に答える