2017-04-07 15 views
0

mod_wsgiでApacheを使用しています。これは静的ファイルです。Django - Apacheがmod_wsgiで静的ファイルを提供していない

オフィシャルドキュメント"How to use Django with Apache and mod_wsgi"を使用しましたが、静的ファイルが見つからないことを除いてすべて正常に動作します。私はその問題をデバッグするための良い方法を見つけていないか、エラーを指摘できる特定のメッセージを得ることさえできません。

は、私がこれまでにやった:

  • ダブルは静的ファイルが正しく静的ファイル・ディレクトリの場所があることを確認しました。

    [..] 
    DEBUG = False 
    STATIC_ROOT = '/var/www/djangoProject/static-files' 
    STATIC_URL = '/static/' 
    

    Apacheの設定:

    WSGIDaemonProcess djangoProject 
    
    WSGIProcessGroup djangoProjectGroup 
    WSGIApplicationGroup %{GLOBAL} 
    
    WSGIPythonHome /var/www/djangoProject/venv/lib/python2.7/site-packages 
    WSGIPythonPath /var/www/djangoProject/ 
    
    WSGIScriptAlias//var/www/djangoProject/djangoProject/wsgi.py 
    <Directory /var/www/djangoProject/djangoProject> 
        <Files wsgi.py> 
         Require all granted 
        </Files> 
    </Directory> 
    
    Alias /static/ /var/www/djangoProject/static-files/ 
    <Directory /var/www/djangoProject/static-files> 
        Require all granted 
    </Directory> 
    

    WSG彼らはcollectstatic

  • チェックし、ファイルのパーミッション

settings.pyで収集しましたi.py

import os, sys 

sys.path.append('/var/www/djangoProject') 
sys.path.append('/var/www/djangoProject/venv/lib/python2.7/site-packages') 

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "djangoProject.settings") 

from django.core.wsgi import get_wsgi_application 
application = get_wsgi_application() 

Apacheのアクセスログ:

"GET /static/app01/css/default.css HTTP/1.1" 404 346 "http://example.com/" 

apache2.conf:

Mutex file:${APACHE_LOCK_DIR} default 

PidFile ${APACHE_PID_FILE} 

Timeout 300 
KeepAlive On 
MaxKeepAliveRequests 100 
KeepAliveTimeout 5 

User ${APACHE_RUN_USER} 
Group ${APACHE_RUN_GROUP} 

HostnameLookups Off 

ErrorLog ${APACHE_LOG_DIR}/error.log 
LogLevel warn 

IncludeOptional mods-enabled/*.load 
IncludeOptional mods-enabled/*.conf 

Include ports.conf 

<Directory /> 
     Options FollowSymLinks 
     AllowOverride None 
     Require all denied 
</Directory> 

<Directory /usr/share> 
     AllowOverride None 
     Require all granted 
</Directory> 

<Directory /var/www/> 
     Options Indexes FollowSymLinks 
     AllowOverride None 
     Require all granted 
</Directory> 

AccessFileName .htaccess 

<FilesMatch "^\.ht"> 
     Require all denied 
</FilesMatch> 

LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined 
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined 

LogFormat "%h %l %u %t \"%r\" %>s %O" common 
LogFormat "%{Referer}i -> %U" referer 
LogFormat "%{User-agent}i" agent 

IncludeOptional conf-enabled/*.conf 
IncludeOptional sites-enabled/ 
+0

どのようにあなたのapacheのconfのをロードしていますか?メインのhttpd.confを表示できますか? – lapinkoira

+0

私はメインのapache2.confを含んでいた –

+0

静的ファイルとは無関係ですが、Python仮想環境をどのようにセットアップしているのか少しばかりです。正しい方法はhttp://modwsgi.readthedocs.io/en/develop/user-guides/virtual-environments.htmlを参照してください。 –

答えて

1

私は偉大な回答 "Serving static files with mod_wsgi and Django" を見つけました。

  • 順序が関連している、静的ファイルの別名は最初の場所でなければなりません。

Apacheの設定:

WSGIDaemonProcess djangoProject 

WSGIProcessGroup djangoProjectGroup 
WSGIApplicationGroup %{GLOBAL} 

WSGIPythonHome /var/www/djangoProject/venv/lib/python2.7/site-packages 
WSGIPythonPath /var/www/djangoProject/ 

Alias /static/ /var/www/djangoProject/static-files/ 
<Directory /var/www/djangoProject/static-files> 
    Require all granted 
</Directory> 

WSGIScriptAlias//var/www/djangoProject/djangoProject/wsgi.py 
<Directory /var/www/djangoProject/djangoProject> 
    <Files wsgi.py> 
     Require all granted 
    </Files> 
</Directory> 
関連する問題