电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

解決django 多個(gè)APP時(shí) static文件的問(wèn)題

瀏覽:91日期:2024-10-18 13:55:09

每個(gè)APP下都有自己的static文件夾,那如何設(shè)置將不會(huì)混用呢

以下是實(shí)例(我項(xiàng)目里有兩個(gè)APP(login 和main))

1、首先在setting 文件修改配置路徑

STATIC_URL = ’/static/’STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'MGStudio', 'static'), os.path.join(BASE_DIR, 'main', 'static'), os.path.join(BASE_DIR, 'login', 'static'),]

2、在每個(gè)APP下的static下建立以APP名相同的文件夾

比如我在login/static/login/

放入樣式JS CSS等

3、如何調(diào)用樣式

{% static ’main/img/firefox-logo-small.jpg’ %}{% static ’login/img/name.png’ %}

補(bǔ)充知識(shí):Django項(xiàng)目上線(xiàn)后無(wú)法加載xadmin等的靜態(tài)文件問(wèn)題(django的settings中幾個(gè)static設(shè)置項(xiàng)的關(guān)系)

多數(shù)是static的settings.py設(shè)置問(wèn)題.

這里不設(shè)置好其他app的static你同樣是加載不了

1.settings.py里面這樣設(shè)置.

STATIC_URL = ’/static/’#這里注意不要和你項(xiàng)目static文件夾名一樣,因?yàn)檫@個(gè)是用來(lái)存放收集來(lái)的所有靜態(tài)文件的.#如果你設(shè)置相同,等運(yùn)行collectstatic時(shí)會(huì)警告.STATIC_ROOT = os.path.join(BASE_DIR, ’static1’)# 我們的靜態(tài)文件分開(kāi)三個(gè)部分# 這里我們?cè)O(shè)為三個(gè)路徑STATICFILES_DIRS = [ os.path.join(BASE_DIR, ’static’), os.path.join(BASE_DIR, ’myapp’, ’static’), os.path.join(BASE_DIR, ’userapp’, ’static’), ]

上面第一個(gè)為項(xiàng)目根目錄下static.

下面兩個(gè)是其他app的static,myapp,和userapp分別是你的其他app的名字

比如xadmin下有static,就應(yīng)該加上

os.path.join(BASE_DIR, ‘xadmin’, ‘static’)

在urls里面設(shè)置(如果有多個(gè)在主urls設(shè)置)

from blog.settings import STATIC_ROOTurlpatterns = [ url(r’^admin/’, admin.site.urls), # 添加靜態(tài)文件的訪問(wèn)處理函數(shù) url(r’^static/(?P<path>.*)/$’, serve, {’document_root’: STATIC_ROOT}),

2.在項(xiàng)目目錄下運(yùn)行

python manage.py collectstatic

這時(shí)會(huì)把所有剛才你設(shè)置指定的static搜集到一個(gè)目錄

3.在nginx里面設(shè)置static目錄路徑為剛才設(shè)置的static1

charset utf-8; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8997; uwsgi_param UWSGI_SCRIPT blog.wsgi; uwsgi_param UWSGI_CHDIR /home/wwwblog/myblog/; } location /static/ { alias /home/wwwblog/myblog/static1/; #靜態(tài)文件目錄 }

下面是相關(guān)知識(shí)學(xué)習(xí).

django的settings中幾個(gè)static設(shè)置項(xiàng)的關(guān)系

django的settings中包含三個(gè)static相關(guān)設(shè)置項(xiàng):

STATIC_ROOTSTATIC_URLSTATICFILES_DIRS

STATIC_URL 好理解,就是映射到靜態(tài)文件的url,一般為/static/

STATICFILES_DIRS 是個(gè)列表,放各個(gè)app的static目錄及公共的static目錄

STATIC_ROOT 是總的static目錄,可以使用命令自動(dòng)收集static文件

更加詳細(xì)的解釋?zhuān)?/b>

STATIC_ROOT:運(yùn)行manage.py collectstatic后靜態(tài)文件將復(fù)制到的目錄。注意:不要把你項(xiàng)目的靜態(tài)文件放到這個(gè)目錄。這個(gè)目錄只有在運(yùn)行collectstatic時(shí)才會(huì)用到。我最開(kāi)始想當(dāng)然的以為這個(gè)目錄和MEDIA_ROOT的作用是相同的,致使在開(kāi)發(fā)環(huán)境下一直無(wú)法找到靜態(tài)文件。

STATIC_URL:設(shè)置的static file的起始url,這個(gè)只可以在template里面引用到。這個(gè)參數(shù)和MEDIA_URL的含義差不多。

STATICFILES_DIRS:除了各個(gè)app的static目錄以外還需要管理的靜態(tài)文件位置,比如項(xiàng)目公共的靜態(tài)文件差不多。和TEMPLATE_DIRS的含義差不多。

各個(gè)APP下static/目錄下的靜態(tài)文件django的開(kāi)發(fā)服務(wù)器會(huì)自動(dòng)找到,這點(diǎn)和以前APP下的templates目錄差不多。

假設(shè)有個(gè)工程djangodemo,有兩個(gè)app為demo1跟demo2

django處理static的方法是把各個(gè)app各自的static合并到一處

比如

djangodemo/djangodemo/static 放置公共靜態(tài)文件

djangodemo/demo1/static 放置該app自己的靜態(tài)文件

djangodemo/demo2/static 放置該app自己的靜態(tài)文件

可以這么設(shè)置:

STATIC_URL = ’/static/’STATICFILES_DIRS = ( os.path.join(BASE_DIR, ’static’), os.path.join(BASE_DIR, ’demo1’, ’static’), os.path.join(BASE_DIR, ’demo2’, ’static’),)STATIC_ROOT = os.path.join(BASE_DIR, ’static1’)

使用命令

python manage.py collectstatic

就會(huì)自動(dòng)把所有靜態(tài)文件全部復(fù)制到STATIC_ROOT(即static1)中

如果開(kāi)啟了admin或者(xadmin),這一步是很必要的,不然部署到生產(chǎn)環(huán)境的時(shí)候會(huì)找不到樣式文件

以上這篇解決django 多個(gè)APP時(shí) static文件的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Django
相關(guān)文章:
主站蜘蛛池模板: 昆明挖掘机修理厂_挖掘机翻新再制造-昆明聚力工程机械维修有限公司 | 临海涌泉蜜桔官网|涌泉蜜桔微商批发代理|涌泉蜜桔供应链|涌泉蜜桔一件代发 | 镀锌角钢_槽钢_扁钢_圆钢_方矩管厂家_镀锌花纹板-海邦钢铁(天津)有限公司 | 杭州画室_十大画室_白墙画室_杭州美术培训_国美附中培训_附中考前培训_升学率高的画室_美术中考集训美术高考集训基地 | 排烟防火阀-消防排烟风机-正压送风口-厂家-价格-哪家好-德州鑫港旺通风设备有限公司 | 膜结构_ETFE膜结构_膜结构厂家_膜结构设计-深圳市烨兴智能空间技术有限公司 | PAS糖原染色-CBA流式多因子-明胶酶谱MMP-上海研谨生物科技有限公司 | LZ-373测厚仪-华瑞VOC气体检测仪-个人有毒气体检测仪-厂家-深圳市深博瑞仪器仪表有限公司 | 镀锌角钢_槽钢_扁钢_圆钢_方矩管厂家_镀锌花纹板-海邦钢铁(天津)有限公司 | 蓝米云-专注于高性价比香港/美国VPS云服务器及海外公益型免费虚拟主机 | 一体化污水处理设备,一体化污水设备厂家-宜兴市福源水处理设备有限公司 | 炭黑吸油计_测试仪,单颗粒子硬度仪_ASTM标准炭黑自销-上海贺纳斯仪器仪表有限公司(HITEC中国办事处) | 苏州伊诺尔拆除公司_专业酒店厂房拆除_商场学校拆除_办公楼房屋拆除_家工装拆除拆旧 | 今日娱乐圈——影视剧集_八卦娱乐_明星八卦_最新娱乐八卦新闻 | 郑州水质检测中心_井水检测_河南废气检测_河南中环嘉创检测 | 压砖机、液压制砖机、静压砖机、环保砖机生产厂家—杜甫机械 | 电力测功机,电涡流测功机,磁粉制动器,南通远辰曳引机测试台 | 量子管通环-自清洗过滤器-全自动反冲洗过滤器-北京罗伦过滤技术集团有限公司 | 蓄电池回收,ups电池后备电源回收,铅酸蓄电池回收,机房电源回收-广州益夫铅酸电池回收公司 | 专业生物有机肥造粒机,粉状有机肥生产线,槽式翻堆机厂家-郑州华之强重工科技有限公司 | 消防设施操作员考试报名时间,报名入口,报考条件 | 华禹护栏|锌钢护栏_阳台护栏_护栏厂家-华禹专注阳台护栏、楼梯栏杆、百叶窗、空调架、基坑护栏、道路护栏等锌钢护栏产品的生产销售。 | 雨水收集系统厂家-雨水收集利用-模块雨水收集池-徐州博智环保科技有限公司 | 光伏支架成型设备-光伏钢边框设备-光伏设备厂家 | 酶联免疫分析仪-多管旋涡混合仪|混合器-莱普特科学仪器(北京)有限公司 | 上海租车公司_上海包车_奔驰租赁_上海商务租车_上海谐焕租车 | PAS糖原染色-CBA流式多因子-明胶酶谱MMP-上海研谨生物科技有限公司 | 花纹铝板,合金铝卷板,阴极铝板-济南恒诚铝业有限公司 | 菲希尔FISCHER测厚仪-铁素体检测仪-上海吉馨实业发展有限公司 | 密度电子天平-内校-外校电子天平-沈阳龙腾电子有限公司 | 挤奶设备过滤纸,牛奶过滤纸,挤奶机过滤袋-济南蓝贝尔工贸有限公司 | 压缩空气检测_气体_水质找上海京工-服务专业、价格合理 | 焊接烟尘净化器__焊烟除尘设备_打磨工作台_喷漆废气治理设备 -催化燃烧设备 _天津路博蓝天环保科技有限公司 | 点胶机_点胶阀_自动点胶机_智能点胶机_喷胶机_点胶机厂家【欧力克斯】 | 百方网-百方电气网,电工电气行业专业的B2B电子商务平台 | 仓储笼_仓储货架_南京货架_仓储货架厂家_南京货架价格低-南京一品仓储设备制造公司 | 浴室柜-浴室镜厂家-YINAISI · 意大利设计师品牌 | 咿耐斯 |-浙江台州市丰源卫浴有限公司 | 楼承板设备-楼承板成型机-免浇筑楼承板机器厂家-捡来 | 厚壁钢管-厚壁无缝钢管-小口径厚壁钢管-大口径厚壁钢管 - 聊城宽达钢管有限公司 | 超声波成孔成槽质量检测仪-压浆机-桥梁预应力智能张拉设备-上海硕冠检测设备有限公司 | 云南标线|昆明划线|道路标线|交通标线-就选云南云路施工公司-云南云路科技有限公司 |