python manager.py runserver
開啓內置服務器,因爲項目中local_settings.py文件中的DEBUG=True,進行開發和調試一直沒什麼問題。 css
可是如今須要編寫404,500等出錯頁面,在debug模式下出了錯都會出現報錯頁面,沒法轉向到404或500頁面,這時我將local_settings.py中的DEBUG設爲false,這時候應該能夠轉向到404頁面。實驗證實確實如此,404和500頁面均可以獲得,可是出現了新的問題:css和js文件沒法加載。 python
在網上找了找,很快就找到了問題的緣由:Django框架僅在開發模式下提供靜態文件服務。當我開啓DEBUG模式時,Django內置的服務器是提供靜態文件的服務的,因此css等文件訪問都沒有問題,可是關閉DEBUG模式後,Django便不提供靜態文件服務了。想想這是符合Django的哲學的:這部分事情標準服務器都很擅長,就讓服務器去作吧! shell
OK,解決問題的辦法也就出現了,我最開始想到的就是,使用項目正式部署是所使用的配置,由apache提供靜態文件服務。不過解決問題的方法遠不止一種,在stackoverflow上我發現了更有趣的方法。如今把本身總結的四種方法列在下面,共你們參考: apache
1.將靜態文件由apache提供文件服務(相似正式部署): django
編輯/etc/apache2/sites-available/horizon文件: 服務器
#Alias /media /opt/stack/horizon/openstack_dashboard/static Alias /static /opt/stack/horizon/openstack_dashboard/static創建靜態文件連接:
ln -sv /opt/stack/horizon/openstack_dashboard/static /opt/stack/horizon重啓apache:
sudo service apache2 restart2.使用django.views.static.serve()方法。在URLconf中添加:
(r'^site_media/(?P<path>.*)$', 'django.views.static.serve',{'document_root': '/path/to/media'}),官方文檔中評價這種辦法:「The big, fat disclaimer」。
3.僞造404頁面:使用正確的URL連接404頁面模板; 框架
4.改變項目運行方式: debug
python manage.py runserver --insecure最後這種是stackoverflow上最受歡迎的方法,確實簡單快捷!
https://docs.djangoproject.com/en/1.2/howto/static-files/#limiting-use-to-debug-true rest