Apache-2.2

使用 Django 配置 Apache

  • July 1, 2014

我正在嘗試使用 Django 配置 Apache。除管理面板外,一切正常。它的靜態文件沒有載入。該文件討論了不同的方法,但沒有一個對我有用。

這是我的 0000-default.conf:

<VirtualHost *:80>
   # The ServerName directive sets the request scheme, hostname and port that
   # the server uses to identify itself. This is used when creating
   # redirection URLs. In the context of virtual hosts, the ServerName
   # specifies what hostname must appear in the request's Host: header to
   # match this virtual host. For the default virtual host (this file) this
   # value is not decisive as it is used as a last resort host regardless.
   # However, you must set it for any further virtual host explicitly.
   #ServerName www.example.com

   ServerAdmin maahd@meddy.co
   DocumentRoot /var/www/html
   <Directory />
       Options FollowSymLinks
       AllowOverride None
   </Directory>
   <Directory /var/www/html>
       Options Indexes FollowSymLinks MultiViews
       AllowOverride None
       Order allow,deny
       allow from all
   </Directory>

   ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
   <Directory "/usr/lib/cgi-bin">
       AllowOverride None
       Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
       Order allow,deny
       Allow from all
   </Directory>

   # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
   # error, crit, alert, emerg.
   # It is also possible to configure the loglevel for particular
   # modules, e.g.
   #LogLevel info ssl:warn

   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined

   Alias /doc/ "/usr/share/doc/"
   <Directory "/usr/share/doc/">
       Options Indexes MultiViews FollowSymLinks
       AllowOverride None
       Order deny,allow
       Deny from all
       Allow from 127.0.0.0/255.0.0.0 ::1/128
   </Directory>

Alias /static /var/www/html/sp-django-master/meddy1/static        

   # For most configuration files from conf-available/, which are
   # enabled or disabled at a global level, it is possible to
   # include a line for only one particular virtual host. For example the
   # following line enables the CGI configuration for this host only
   # after it has been globally disabled with "a2disconf".
   #Include conf-available/serve-cgi-bin.conf
</VirtualHost>
include sites-available/meddy.co.conf
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

這是我的 meddy.co.conf,其中 meddy.co 是我的網站:

<VirtualHost *:80>
       ServerName ec2-54-254-141-40.ap-southeast-1.compute.amazonaws.com
       ServerAlias www.ec2-54-254-141-40.ap-southeast-1.compute.amazonaws.com

   WSGIScriptAlias / /var/www/html/sp-django-master/meddy.wsgi

   DocumentRoot /var/www/html/sp-django-master

   #Alias /static /var/www/html/sp-django-master/meddy1/static

   <Location "/static/">
           Options -Indexes
       </Location>

   #AliasMatch ^/([^/]*\.css) /var/www/html/sp-django-master/meddy1/static/meddy1/css/$1

   AliasMatch ^/([^/meddy1]*\.css) /var/www/html/sp-django-master/meddy1/static/meddy1/css/$1
   AliasMatch ^/([^/admin]*\.css) /var/www/html/sp-django-master/static/admin/css/$1   

   Alias /static/ /var/www/html/sp-django-master/meddy1/static/

   <Directory /var/www/html/sp-django-master/meddy1/static>
   Require all granted
   </Directory>

   <Directory /var/www/html/sp-django-master/mysite>
   <Files wsgi.py>
   Require all granted
   </Files>
   </Directory>

   Alias /media/ /var/www/html/sp-django-master/uploads/

       <Directory /var/www/html/sp-django-master/uploads>
       Require all granted
       </Directory>

   Alias /static/admin/ /var/www/html/sp-django-master/static/admin/

</VirtualHost>

任何幫助,將不勝感激。

弄清楚了。您不需要倒數第二行:Alias /static/admin/ /var/www/html/sp-django-master/static/admin/因為當 django 應該在應用程序根目錄中的靜態文件夾中查找時,它會強制 django 在另一個文件夾中查找靜態文件。所以只需使用Alias /static/ /var/www/html/sp-django-master/meddy1/static/. 由於我使用的是 collectstatic,我不必區分static/admin/static/

引用自:https://serverfault.com/questions/607101