0

Django 開発サーバーから本番用の Apache に切り替えています。そのために、modwsgi をインストールし、apache2.conf で次のように指定しました。

# Run my django application.
WSGIScriptAlias / /home/david/registration/registration/wsgi.py
WSGIPythonPath /home/david/registration

<Directory /home/david/registration/registration>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>

Apache を再起動すると、アプリケーションがブラウザに読み込まれますが、CSS や画像は読み込まれません。

以前はstaticfiles、静的ファイルの管理に を使用していました。これらの設定がありました。

# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/home/media/media.lawrence.com/static/"
STATIC_ROOT = '/home/david/static/'

# URL prefix for static files.
# Example: "http://media.lawrence.com/static/"
STATIC_URL = '/static/'

静的ファイルは以前は機能していましたが、現在は機能していません。Apache に切り替えると静的ファイルが読み込まれないのはなぜですか?

4

1 に答える 1

1

apache2、wsgi、およびdjangoを使用するための最良のオプションは、/ etc / apache2 / sites-enabled / mynewsite.apacheにある新しいファイルを使用することです(拡張子は関係ありません)

ファイルは次のようになっている必要があります。

NameVirtualHost *:80
<VirtualHost *:80>
    ServerAdmin diego@diegue.us
    ServerName yourproject.com.co
    Alias /admin/media/ /path/to/your/admin/media/
    Alias /media/ /path/to/your/media/
    Alias /static/ /path/to/your/static/collected/files/

    <Directory /path/to/your/admin/media/>
        Order deny,allow
        Allow from all
    </Directory>

    <Directory /path/to/your/media/>
        Order deny,allow
        Allow from all
    </Directory>

    <Directory /path/to/your/static/collected/files/>
        Order deny,allow
        Allow from all
    </Directory>

    WSGIScriptReloading On
    WSGIDaemonProcess yourproject python-path=/path/of/packages/for/python # (this is because I use virtualenvwrapper)
    WSGIProcessGroup yourproject
    WSGIApplicationGroup yourproject
    WSGIPassAuthorization On

    WSGIScriptAlias / /path/to/your/yourproject.wsgi
    ErrorLog /var/log/apache2/yourproject-error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel debug

    CustomLog /var/log/apache2/yourproject-access.log combined

</VirtualHost>

djangoアプリケーションを提供するようにapacheに指示する必要がありますが、Apacheがファイルを提供することも指示する必要があります。

于 2012-05-18T21:52:38.253 に答える