婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > Django debug為T(mén)rue時(shí),css加載失敗的解決方案

Django debug為T(mén)rue時(shí),css加載失敗的解決方案

熱門(mén)標(biāo)簽:地圖制圖標(biāo)注位置改變是移位嗎 浙江電銷(xiāo)卡外呼系統(tǒng)好用嗎 房產(chǎn)電銷(xiāo)外呼系統(tǒng) 地圖標(biāo)注的意義點(diǎn) 南京銷(xiāo)售外呼系統(tǒng)軟件 蓋州市地圖標(biāo)注 上海機(jī)器人外呼系統(tǒng)哪家好 315電話機(jī)器人廣告 地圖標(biāo)注微信發(fā)送位置不顯示

django上線后,需要把setting.py文件的debug=True改為False,以防暴露代碼報(bào)錯(cuò)問(wèn)題。

因?yàn)槲翼?xiàng)目用到css的地方只有admin管理員登陸這塊,沒(méi)有自定義的css等,所以我的css文件夾名稱(chēng)定義成static

1.更改setting.py文件

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

STATIC_URL是css的加載路徑,項(xiàng)目中如果用到了css的地方,會(huì)沿著該路徑尋找這個(gè)路徑下的css文件

STATIC_ROOT是存放所有的static文件,運(yùn)行 python manage.py collectionstatic命令后,python會(huì)自動(dòng)檢索項(xiàng)目所有的目錄,把static文件夾拷貝到STATIC_ROOT目錄下。在部署的時(shí)候會(huì)用到。

2.執(zhí)行下述命令

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

python manage.py collectionstatic

3.修改nginx配置文件

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

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

server結(jié)果如下

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;
        } 
} 

作用如下:當(dāng)一個(gè)請(qǐng)求(例如,登陸請(qǐng)求 http://127.0.0.1:8011/admin/)通過(guò)nginx轉(zhuǎn)發(fā)時(shí),會(huì)首先到下面的location中,被轉(zhuǎn)發(fā)到8000端口,調(diào)用Django項(xiàng)目中的admin登陸接口,登陸接口里面會(huì)請(qǐng)求兩個(gè)css文件,分別是

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

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

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

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

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

補(bǔ)充:Django項(xiàng)目關(guān)閉debug模式后,靜態(tài)文件無(wú)法加載的解決辦法

近期在做OpenStack Horizon項(xiàng)目的相關(guān)開(kāi)發(fā),OpenStack的整體環(huán)境使用DevStack安裝,horizon開(kāi)發(fā)過(guò)程中直接使用命令:

python manager.py runserver

開(kāi)啟內(nèi)置服務(wù)器,由于項(xiàng)目中l(wèi)ocal_settings.py文件中的DEBUG=True,進(jìn)行開(kāi)發(fā)和調(diào)試一直沒(méi)什么問(wèn)題。

但是現(xiàn)在需要編寫(xiě)404,500等出錯(cuò)頁(yè)面,在debug模式下出了錯(cuò)都會(huì)出現(xiàn)報(bào)錯(cuò)頁(yè)面,無(wú)法轉(zhuǎn)向到404或500頁(yè)面,這時(shí)我將local_settings.py中的DEBUG設(shè)為false,這時(shí)候應(yīng)該可以轉(zhuǎn)向到404頁(yè)面。

實(shí)驗(yàn)證明確實(shí)如此,404和500頁(yè)面都可以得到,但是出現(xiàn)了新的問(wèn)題:css和js文件無(wú)法加載。

在網(wǎng)上找了找,很快就找到了問(wèn)題的原因:

Django框架僅在開(kāi)發(fā)模式下提供靜態(tài)文件服務(wù)。

當(dāng)我開(kāi)啟DEBUG模式時(shí),Django內(nèi)置的服務(wù)器是提供靜態(tài)文件的服務(wù)的,所以css等文件訪問(wèn)都沒(méi)有問(wèn)題,但是關(guān)閉DEBUG模式后,Django便不提供靜態(tài)文件服務(wù)了。

想一想這是符合Django的哲學(xué)的:這部分事情標(biāo)準(zhǔn)服務(wù)器都很擅長(zhǎng),就讓服務(wù)器去做吧!

OK,解決問(wèn)題的辦法也就出現(xiàn)了,我最開(kāi)始想到的就是,使用項(xiàng)目正式部署是所使用的配置,由apache提供靜態(tài)文件服務(wù)。不過(guò)解決問(wèn)題的方法遠(yuǎn)不止一種,在stackoverflow上我發(fā)現(xiàn)了更有趣的方法。

現(xiàn)在把自己總結(jié)的四種方法列在下面,共大家參考:

1.將靜態(tài)文件由apache提供文件服務(wù)(類(lèi)似正式部署):

編輯/etc/apache2/sites-available/horizon文件:

#Alias /media /opt/stack/horizon/openstack_dashboard/static
Alias /static /opt/stack/horizon/openstack_dashboard/static

建立靜態(tài)文件鏈接:

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'}),

官方文檔中評(píng)價(jià)這種辦法:“The big, fat disclaimer”。

3.偽造404頁(yè)面:

使用正確的URL鏈接404頁(yè)面模板;

4.改變項(xiàng)目運(yùn)行方式:

python manage.py runserver --insecure

最后這種是stackoverflow上最受歡迎的方法,確實(shí)簡(jiǎn)單快捷!

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

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

標(biāo)簽:貴州 陽(yáng)泉 臨汾 日照 金華 雙鴨山 赤峰 克拉瑪依

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Django debug為T(mén)rue時(shí),css加載失敗的解決方案》,本文關(guān)鍵詞  Django,debug,為,True,時(shí),css,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Django debug為T(mén)rue時(shí),css加載失敗的解決方案》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Django debug為T(mén)rue時(shí),css加載失敗的解決方案的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 晋城| 阿勒泰市| 乌兰浩特市| 南召县| 广水市| 台北市| 永寿县| 普安县| 静宁县| 临安市| 文山县| 南投县| 瑞丽市| 五莲县| 盐池县| 高安市| 安陆市| 克拉玛依市| 若尔盖县| 靖西县| 巫山县| 南江县| 铜鼓县| 沂南县| 陇西县| 克东县| 泸西县| 宜黄县| 南城县| 西昌市| 阿瓦提县| 青海省| 淮南市| 富锦市| 曲松县| 三穗县| 花莲县| 沾化县| 长治市| 岫岩| 乌鲁木齐县|