私が取り組んでいるDjangoサイトを、開発サーバーの段階から実際のホスティング環境に移動しようとしています。当面は、個人のマシンでホストしているだけです。 。すでにApacheとmod-wsgiをインストールしていますが、静的ファイルの取得に問題があります。Apacheに関係していると確信しています。サイトの構成ファイルは次のとおりです。
<VirtualHost *:80>
ServerName localhost
ServerAlias daifotis.dyndns.org
ServerAdmin [email protected]
DocumentRoot /home/daifotis/code/
Alias /media/ /home/daifotis/code/feris/sitestatic
Alias /static/ /home/daifotis/code/feris/sitestatic
#AliasMatch ^/([^/]*\.css) /home/daifotis/code/feris/sitestatic/$1
<Directory /home/daifotis/code/feris/sitestatic>
Order allow,deny
Allow from all
</Directory>
<Directory /home/daifotis/code/feris>
Order allow,deny
Allow from all
</Directory>
<Directory /home/daifotis/code/feris/jobsite>
Order allow,deny
Allow from all
</Directory>
WSGIDaemonProcess feris processes=2 threads=15 display-name=%{GROUP}
WSGIProcessGroup feris
WSGIScriptAlias / /home/daifotis/code/feris/Apache/Django.wsgi
<Directory /home/daifotis/code/feris/Apache>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Staticでエイリアスしたディレクトリからファイルをホストしようとしています。サイトを読み込もうとすると、すべてのコンテンツが表示されますが、CSSは表示されません。また、URL www.server.com/static/にアクセスすると、ディレクトリの適切なコンテンツを含むページが表示されます。しかし、私が理解していないのは、リンクをクリックしてファイルを表示すると、URLが存在しないと表示される理由です。私はしばらくこれに固執しているので、どんな助けでも大歓迎です。
理解した。この行でApache構成エラーが発生しました:
Alias /static/ /home/daifotis/code/feris/sitestatic
末尾にスラッシュを付けずにstaticと書くべきでした。末尾にスラッシュがあると、ApacheはURLパスを展開しません。
Alias /static /home/daifotis/code/feris/sitestatic
Django 1.3、および静的ファイルを提供する「新しい」方法を使用していると想定しています。MEDIAおよびに関連するsettings.py
ファイルの設定を教えてください。 STATIC?ROOTバージョンとURLバージョンの両方。STATICFILES_DIRSも表示します。
最も可能性の高い原因は、Djangoがcontrib.staticfiles
の静的ファイルのみを提供するように構成されていることです。すべてを収集するには管理コマンドpython manage.py collectstatic
を実行する必要がある可能性がありますアプリケーションの静的ファイルを、Apacheが提供できるディレクトリに配置します。
Django.contrib.staticfiles
を使用するための設定については、 ここでの私の答え を参照してください。
Alias /static/ /home/daifotis/code/feris/sitestatic
が指すディレクトリに静的ファイルが100%存在する場合は、Apacheのアクセス許可が正しく構成されていない可能性があります。静的コンテンツを提供しようとしたときにIOPermissionsエラーがあるかどうかを確認するために、/var/log/httpd/error_log
ファイルをチェックしましたか?