AMcoder - javascript, python, java, html, php, sql

տեղակայել ստատիկ ֆայլեր Django modpython-ով

Ինձ միշտ հետաքրքրել է, թե ինչպես են ստատիկ ֆայլերը գտնում սերվերի կողմից Django-ի օգտագործման ժամանակ: Վերջերս ես տեղադրեցի իմ Django հավելվածը սերվերի վրա և խնդիրներ ունեցա ստատիկ ֆայլեր տեղակայելու հարցում: Ես միշտ ստանում եմ հետևյալ սխալը.

Using the URLconf defined in cms.urls, Django tried these URL patterns, in this order:
^gre/
The current URL, static/, didn't match any of these.

երբ ես խնդրեցի իմ css ֆայլը նման http://gnijuohz.com/static/css/bootstrap.css

SO 1)

Պե՞տք է ինչ-որ բան անեմ իմ urls.py-ի հետ, որպեսզի այն կարողանա գտնել իմ css և js ֆայլերը:

Ուշադրություն դարձրեք, որ ես սերվերի վրա արմատային թույլտվություն չունեմ, ուստի չեմ կարող օգտագործել Django-ի կողմից տրամադրված collectstatic հրամանը:

Ես դրեցի STATIC_ROOT-ը և STATIC_URL-ը իմ setting.py-ում այնպես, որ STATIC_ROOT-ը մատնանշի իմ ստատիկ ֆայլերը:

2)

Ես պարզ չեմ, թե ինչպես է ամբողջ գործընթացը աշխատում։ Երբ ես խնդրում եմ իմ css ֆայլը, արդյո՞ք այն urls.py-ի միջով է փնտրում համընկնումներ կատարելու համար:

Շնորհակալություն ցանկացած օգնության համար:


  • նմանատիպ՝ stackoverflow.com/questions/10460028/ 05.06.2012
  • @ArgsKwargs Իրականում ոչ: Ես չեմ կարող գործարկել ./manage.py collectstatic հրամանը 05.06.2012
  • Ո՞վ ասաց, որ պետք է, դա բացատրում է և՛ արտադրական, և՛ զարգացման միջավայրերը... 06.06.2012
  • @ArgsKwargs Ինձ միայն արտադրական միջավայր է պետք։ 06.06.2012

Պատասխանները:


1

1.

Ոչ, Django-ն չպետք է սպասարկի ձեր ստատիկ ֆայլերը արտադրական սերվերի վրա: Apache-ն (կամ այն ​​սերվերը, որը դուք օգտագործում եք) պետք է սպասարկի ստատիկ ֆայլերը, որոնք հաճախ գտնվում են գրացուցակում /static/: Դա այն է, ինչ անում է collectstatic-ը. այն հավաքում է բոլոր ստատիկ ֆայլերը ձեր բոլոր Django հավելվածներից և դրանք դնում է STATIC_ROOT-ում, որպեսզի ձեր սերվերը կարողանա սպասարկել ֆայլերը:

Տեղայնորեն դուք կարող եք սպասարկել ստատիկ ֆայլերը՝ հարմարեցնելով ձեր urlpatternsurls.py-ում:

Ափսոս, որ դուք չեք կարող օգտագործել collectstatic-ը, քանի որ հենց այդպես է նախատեսված Django-ն օգտագործելու համար:

2.

Ինչպես ասվեց վերևում, դա այն չէ, ինչ պետք է լինի:

Այժմ, ձեր հարցին պատասխանելու համար կարող եք ձեր STATIC_ROOT-ում ստեղծել խորհրդանշական հղումներ դեպի բոլոր այն վայրերը, որտեղ գտնվում են ձեր ստատիկ ֆայլերը: Այսպիսով, խորհրդանշական հղում յուրաքանչյուր Django հավելվածի յուրաքանչյուր ստատիկ գրացուցակին:

05.06.2012
  • Դա հնարավոր է, եթե դա աշխատի: Բայց դուք կարող եք ավտոմատացնել այն, այնպես որ կարող եք գրել մի փոքրիկ սկրիպտ, որը լոկալ կերպով հավաքում է ստատիկ ֆայլերը՝ նախքան ծածկագիրը ձեր սերվերում վերբեռնելը: Վերջնական արդյունքը կլինի նույնը. քանի դեռ ստատիկ ֆայլերը կարող են գտնել սերվերը, դրանք կարող են սպասարկվել այդ գրացուցակից: 05.06.2012
  • Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..