我正在使用Django 1.8,python 3.4.3和Apache 2.4.7,我嘗試了很多配置,我看不到我做錯了什麼。當我使用調試模式下的一切,但圖像正在運行完美,我用這對urls.py解決圖像問題:服務Django的媒體和靜態文件在Apache中的問題
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 [email protected]
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>
如果我把調試=真,CSS和管理的JS和App再次開始工作時,只有圖像(媒體文件)不。
此問題通常是由靜態文件目錄上的文件夾/文件權限引起的。例如,如果以root身份運行collectstatic,Apache將無法訪問這些文件。檢查Apache日誌中的權限錯誤。你在使用什麼操作系統? –
@ Nostalg.io我在'/ var/log/apache2'上檢查了訪問和錯誤日志,每個文件都有5個文件,但我認爲沒有任何相關性。在訪問中有兩行重複,一個是關於'dummy connection'的說法,另一個是關於'fav.ico'的說法,而在錯誤中我只看到這個重複的每個文件'無法可靠地確定服務器的完全限定域名字'。我正在使用Ubuntu 14.04。謝謝,這可能永遠不會超出我的想法。 – elG
@ Nostalg.io我忘了檢查其中一個錯誤文件,在'/ usr/lib/python3'中有很多'AssertionError:斷言tlock不是None',還有''模塊'線程'中被忽略的異常。 4/threading.py'>' – elG