好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Django debug為True時,css加載失敗的解決方案

Django debug為True時,css加載失敗的解決方案

熱門標簽:地圖制圖標注位置改變是移位嗎 浙江電銷卡外呼系統好用嗎 房產電銷外呼系統 地圖標注的意義點 南京銷售外呼系統軟件 蓋州市地圖標注 上海機器人外呼系統哪家好 315電話機器人廣告 地圖標注微信發送位置不顯示

django上線后,需要把setting.py文件的debug=True改為False,以防暴露代碼報錯問題。

因為我項目用到css的地方只有admin管理員登陸這塊,沒有自定義的css等,所以我的css文件夾名稱定義成static

1.更改setting.py文件

STATIC_URL=‘/static/‘
STATIC_ROOT=os.path.join(BASE_DIR,'../static/')

STATIC_URL是css的加載路徑,項目中如果用到了css的地方,會沿著該路徑尋找這個路徑下的css文件

STATIC_ROOT是存放所有的static文件,運行 python manage.py collectionstatic命令后,python會自動檢索項目所有的目錄,把static文件夾拷貝到STATIC_ROOT目錄下。在部署的時候會用到。

2.執行下述命令

將所有的所有app下(包括Django自帶的)static目錄下的文件復制到STATIC_ROOT目錄下

python manage.py collectionstatic

3.修改nginx配置文件

添加下述代碼到nginx配置文件中

location /static {
    alias /Users/admin/PythonProject/static;
    break;
    }  

server結果如下

server{
        listen 8011;
        server_name localhost;
        rewrite ^/$/ break;
        location /static {
            alias /Users/admin/PythonProject/static;
            break;
        }    
        location /{
            proxy_pass http://127.0.0.1:8000;
        } 
} 

作用如下:當一個請求(例如,登陸請求 http://127.0.0.1:8011/admin/)通過nginx轉發時,會首先到下面的location中,被轉發到8000端口,調用Django項目中的admin登陸接口,登陸接口里面會請求兩個css文件,分別是

http://127.0.0.1:8011/static/admin/css/login.css

http://127.0.0.1:8011/static/admin/css/base.css

這兩個請求被上面的nginx配置中的第一個location匹配到,并且使用alias路徑替換location路徑,找到login.css文件和base.css文件。

(注意:location后面配置的路徑,如果是以 / 結尾,那么匹配后的路徑將不會帶匹配中的字段,不帶 / 結尾,將會帶著匹配中的字段,詳細的就不再贅述了)

這樣,css文件就會被正確的加載上了。

補充:Django項目關閉debug模式后,靜態文件無法加載的解決辦法

近期在做OpenStack Horizon項目的相關開發,OpenStack的整體環境使用DevStack安裝,horizon開發過程中直接使用命令:

python manager.py runserver

開啟內置服務器,由于項目中local_settings.py文件中的DEBUG=True,進行開發和調試一直沒什么問題。

但是現在需要編寫404,500等出錯頁面,在debug模式下出了錯都會出現報錯頁面,無法轉向到404或500頁面,這時我將local_settings.py中的DEBUG設為false,這時候應該可以轉向到404頁面。

實驗證明確實如此,404和500頁面都可以得到,但是出現了新的問題:css和js文件無法加載。

在網上找了找,很快就找到了問題的原因:

Django框架僅在開發模式下提供靜態文件服務。

當我開啟DEBUG模式時,Django內置的服務器是提供靜態文件的服務的,所以css等文件訪問都沒有問題,但是關閉DEBUG模式后,Django便不提供靜態文件服務了。

想一想這是符合Django的哲學的:這部分事情標準服務器都很擅長,就讓服務器去做吧!

OK,解決問題的辦法也就出現了,我最開始想到的就是,使用項目正式部署是所使用的配置,由apache提供靜態文件服務。不過解決問題的方法遠不止一種,在stackoverflow上我發現了更有趣的方法。

現在把自己總結的四種方法列在下面,共大家參考:

1.將靜態文件由apache提供文件服務(類似正式部署):

編輯/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 restart

2.使用django.views.static.serve()方法

在URLconf中添加:

(r'^site_media/(?Ppath>.*)$', 'django.views.static.serve',{'document_root': '/path/to/media'}),

官方文檔中評價這種辦法:“The big, fat disclaimer”。

3.偽造404頁面:

使用正確的URL鏈接404頁面模板;

4.改變項目運行方式:

python manage.py runserver --insecure

最后這種是stackoverflow上最受歡迎的方法,確實簡單快捷!

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • 解決django無法訪問本地static文件(js,css,img)網頁里js,cs都加載不了
  • 解決django后臺樣式丟失,css資源加載失敗的問題
  • 快速解決Django關閉Debug模式無法加載media圖片與static靜態文件
  • 解決Django生產環境無法加載靜態文件問題的解決
  • Django靜態文件加載失敗解決方案

標簽:貴州 陽泉 臨汾 日照 金華 雙鴨山 赤峰 克拉瑪依

巨人網絡通訊聲明:本文標題《Django debug為True時,css加載失敗的解決方案》,本文關鍵詞  Django,debug,為,True,時,css,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Django debug為True時,css加載失敗的解決方案》相關的同類信息!
  • 本頁收集關于Django debug為True時,css加載失敗的解決方案的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 日本近親偷子亂伦久久久久久| 美女黄色一级片| 一卡2卡三卡四卡精品乱| 两男吃我奶头一边一个3p| 宝贝真乖欧阳凝| 一整集都在do的动漫| 6080亚洲精品一区二区| **一级毛片| 污片在线看| 国产视频二区在线观看| 欧美熟妇色????国产| 亚洲AV少妇一区二区在线观看 | 黄色理论片| 嗯啊~用力~高潮了~快~原神 | 免费A片一区二区三区毛片| 一级A片人獸交| 国产精品夜夜爽张柏芝| 99久久国产精品麻豆开元| 性猛交乱婬A片无码久久久影院 | 欧美??????JAPPT0| 久久精品亚洲AV无码四区牛牛| 女同性恋一区| 老师不可以现在是上课| chinese锐度捆绑| jizzjizz日本护士水好| 人妻91丨PORNY丨绿帽| 女人18毛片一级毛片会员很大| 天天摸日日碰天天看免费| 国产人成777在线视频直播| 汤唯被揉到高潮下不了床视频大全| 东北熟妇无码XXOO| hdhdhdxxxxxxxxx| 蜜桃av秘?无码一区三区 | 涩涩视频在线看| 阿拉善左旗| 一个人视频在线观看动漫www| 很黄很色的小说| 国产三级午夜理伦三级2009年| mm131国产精品无码久久| 精品欧美激情在线看| 艳妇乳肉豪妇荡乳ⅩXXO电影|