2012-02-08 9 views
0

私はUbuntu 11.04でApache上でDjangoを設定しています。私のメディアファイルは利用できません。Django on apache2/mod_wsgiとcollectstatic

のhttpd.conf

Alias /robots.txt /home/i159/workspace/prod-shivablog/shivablog/robots.txt 
Alias /favicon.ico /home/i159/workspace/prod-shivablog/shivalog/favicon.ico 

AliasMatch ^/([^/]*\.css) /home/i159/workspace/prod-  shivablog/shivablog/site_media/static/css/$1 

Alias /media/ /home/i159/workspace/prod-shivablog/shivablog/site_media/static/ 
Alias /static/ /home/i159/workspace/prod-shivablog/shivablog/site_media/static/ 

<Directory /home/i159/workspace/prod-shivablog/shivablog/static> 
Order deny,allow 
Allow from all 
</Directory> 

<Directory /home/i159/workspace/prod-shivablog/shivablog/media> 
Order deny,allow 
Allow from all 
</Directory> 

WSGIScriptAlias//home/i159/workspace/prod-shivablog/shivablog/deploy/wsgi.py 
WSGIDaemonProcess local-shivablog.com python-path=/home/i159/workspace/prod- shivablog/shivablog/:/home/i159/.envs/shivablog/python2.7/site-packages 

<Directory /home/i159/workspace/prod-shivablog/shivablog> 
<Files wsgi.py> 
Order allow,deny 
Allow from all 
</Files> 
</Directory> 

のURL

# Static files url. 
(r'^media/(?P<path>.*)$', 'django.views.static.serve', 
            {'document_root': settings.MEDIA_ROOT}), 
(r'^site_media/static/(?P<path>.*)$', 'django.views.static.serve', 
           {'document_root': settings.STATIC_ROOT}), 

WSGI

import os, sys 

sys.path.insert(0, os.path.abspath(os.path.join(os.path.abspath(os.path.dirname(__file__)), os.pardir, os.pardir))) 
sys.path.insert(0, os.path.abspath(os.path.join(os.path.abspath(os.path.dirname(__file__)), os.pardir))) 

from django.core.handlers.wsgi import WSGIHandler 
os.environ["DJANGO_SETTINGS_MODULE"] = "shivablog.settings" 
application = WSGIHandler() 

設定

MEDIA_ROOT = '' 

MEDIA_URL = "/media/" 

STATIC_ROOT = '' 

STATIC_URL = "/site_media/static/" 

メディアファイルを利用できるようにするには?どのような構成が正しいですか? collectstaticの後、すべての静的ファイルとメディアファイルがsite_media/staticに収集されます。このディレクトリ(site_media/static)からメディアファイルを取得する必要がありますか?

+0

あなたのApache設定はおおよそのようです。あなたはどんなエラーを出していますか?あなたのApacheログをチェックしましたか? –

+0

私は403エラーがあります - このURLはサーバー上にありません。 – I159

答えて

0

メディアまたは静的ファイルについては、urls.pyファイルにエントリを入れてはいけません。あなたが少なくともデバッグモード= Trueでこれを行うだけの理由でそれらをラップするならば。

https://docs.djangoproject.com/en/1.2/howto/static-files/

(r'^media/(?P<path>.*)$', 'django.views.static.serve', 
            {'document_root': settings.MEDIA_ROOT}), 
(r'^site_media/static/(?P<path>.*)$', 'django.views.static.serve', 
           {'document_root': settings.STATIC_ROOT}), 

また、あなたの.htaccessファイルが同じフォルダにそのポイント以下の行を持って、私はあなたの静的なファイルがメディアフォルダにないと、彼らは異なるされるべきだと思います。

Alias /media/ /home/i159/workspace/prod-shivablog/shivablog/site_media/static/ 
Alias /static/ /home/i159/workspace/prod-shivablog/shivablog/site_media/static/ 
関連する問題