我正在使用Django 1.8,python 3.4.3和Apache 2.4.7,我尝试了很多配置,但我看不出我做错了什么。当我使用调试模式时,除了图像运行完美之外,我在urls.py上使用它解决了图像问题:
url(r'^media/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
后来我转向DEBUG=False
并且图像停止工作,这就是为什么开始阅读有关在Apache上提供静态和媒体文件的原因。并且基本配置一切似乎都正常,但是图像再次停止工作,在尝试了一些配置后,我的应用程序CSS和JS刚停止工作,所以我使用了collectstatic
,之后,管理员也失去了它CSS和Js,但是当我再次转换它True
时,CSS和JS又开始在App和Admin上工作。
现在在DEBUG = False没有任何工作,管理员静态,我的应用程序静态文件和媒体文件,没有。
这些是我的设置:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
PROJECT_ROOT = os.path.realpath(os.path.dirname(__file__))
MEDIA_ROOT = PROJECT_ROOT + '/archivos/'
MEDIA_URL = '/archivos/' #put whatever you want that when url is rendered it will be /archivos/imagename.jpg
DEBUG = True #False
ALLOWED_HOSTS = ['localhost','127.0.0.1']
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
这是我的/etc/apache2/sites-enabled/000-default.conf
文件:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerName django.myproject
Alias /static /home/developer/myproject/static
<Directory /home/developer/myproject/static>
Require all granted
</Directory>
Alias /archivos/ /home/developer/myproject/archivos/
<Directory /home/developer/myproject/archivos>
Require all granted
</Directory>
<Directory /home/developer/myproject/myapp>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess myproject python-path=/home/developer/myproject:/home/developer/myproject/projectvenv/lib/python3.4/site-packages
WSGIProcessGroup myproject
WSGIScriptAlias / /home/developer/myproject/projectsystem/wsgi.py
</VirtualHost>
如果我打开Debug = True,管理员和应用程序的CSS和JS再次开始工作,只有图像(媒体文件)没有。
答案 0 :(得分:0)
感谢用户@ Nostalg.io的帮助(在问题的评论中找到他)我找到了一个解决方案(好吧,他找到了),有很多错误的配置和权限错误。
首先,我使用127.0.0.1:8000访问我的应用程序,这是一个DJango URL,这就是为什么文件没有服务的原因,我不得不使用apache。此外,在同一个文件上有两个虚拟主机,我删除了第一个。当我使用Ubuntu 14.04时,必须像/etc/hosts
这样添加一个主机:127.0.0.1 django.myproject
注意这是我在Virtualhost上的服务器名称。后来尝试进入django.myproject
,但我有权限错误,因为我使用了这个:chown -R www-data:www-data /home/developer/myproject
之后,我仍然有权限错误,那是因为这个wsgi地址:
<Directory /home/developer/myproject/myapp>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
与此匹配:
WSGIScriptAlias / /home/developer/myproject/projectsystem/wsgi.py
wsgi.py
在项目系统文件夹中,所以我改变了。
之后,我有500个错误,这是关于/ var / www /,apache无法访问日志文件,所以我在虚拟主机配置中添加了这个:
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
只是为了尝试,我按照此处给出的说明更改了/var/www
所有者:errno 13 permission denied
还有我的媒体&#34;目录是&#34; archivos&#34;没有得到很好的解决,我改变了它的地址,现在一切正常:D。
我真的要感谢@ Nostalg.io,因为他向我发送了我用来解决这个问题的所有内容,并且还花时间阅读了我的所有错误日志。