Conas comhaid statacha a bhainistiú (m.sh. íomhánna, JavaScript, CSS)Link to this heading

Websites generally need to serve additional files such as images, JavaScript, or CSS. In Django, we refer to these files as "static files". Django provides django.contrib.staticfiles to help you manage them.

Déanann an leathanach seo cur síos ar conas is féidir leat na comhaid statacha seo a sheirbheáil.

Comhaid statacha a chumrúLink to this heading

  1. Déan cinnte go bhfuil django.contrib.staticfiles san áireamh i do: setting: INSTALLED_APPS.

  2. I do chomhad socruithe, sainmhínigh: setting: STATIC_URL, mar shampla:

    Code
    STATIC_URL = "static/"
    
  3. I do theimpléid, bain úsáid as an clib teimpléad:ttag: static chun an URL a thógáil don chonair choibhneasta tugtha ag baint úsáide as an ainm cumraithe staticfiles:setting: STORAGES.

    Django template
    {% load static %}
    <img src="{% static 'my_app/example.jpg' %}" alt="My image">
    
  4. Stóráil do chuid comhad statacha i bhfillteán ar a dtugtar static i d'aip. Mar shampla my_app/static/my_app/example.jpg.

Is dócha go mbeidh sócmhainní statacha ag do thionscadal nach bhfuil ceangailte le aip áirithe. Chomh maith le eolaire static/` a úsáid taobh istigh de d'aipeanna, is féidir leat liosta eolairí a shainiú (:setting: STATICFILES_DIRS) i do chomhad socruithe áit a lorgfaidh Django comhaid statacha freisin. Mar shampla:

Code
STATICFILES_DIRS = [
    BASE_DIR / "static",
    "/var/www/static/",
]

Féach an doiciméadú le haghaidh socrú:setting: STATICFILES_FINDERS le haghaidh sonraí faoin gcaoi a aimsíonn staticfiles do chuid comhad.

Ag freastal ar chomhaid statacha le linnLink to this heading

Má úsáideann tú: mod: django.contrib.staticfiles mar a mhínítear thuas, déanfaidh: djadmin: runserver é seo go huathoibríoch nuair:setting: DEBUG socraithe go True. Mura bhfuil django.contrib.staticfiles agat in:setting: INSTALLED_APPS, is féidir leat comhaid statacha a sheirbheáil de láimh fós ag baint úsáide as an amharc:func: django.views.static.serve.

Níl sé seo oiriúnach le húsáid táirgeachta! Maidir le roinnt straitéisí imscartha coitianta, féach:doc: /howto/static-files/deployment.

Mar shampla, má shainmhínítear duit:setting: STATIC_URL mar static/, is féidir leat é seo a dhéanamh tríd an snippet seo a leanas a chur le do urls.py`:

Code
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    # ... the rest of your URLconf goes here ...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

Freastal ar chomhaid a uaslódálann úsáideoir le linn naLink to this heading

Le linn na forbartha, is féidir leat comhaid meán a uaslódáladh ón úsáideoir a sheirbheáil ó:setting: MEDIA_ROOT ag baint úsáide as an amharc: func: django.views.static.serve.

Níl sé seo oiriúnach le húsáid táirgeachta! Maidir le roinnt straitéisí imscartha coitianta, féach:doc: /howto/static-files/deployment.

Mar shampla, má shainmhínítear duit:setting: MEDIA_URL mar media/, is féidir leat é seo a dhéanamh tríd an snippet seo a leanas a chur le duit:setting: ROOT_URLCONF:

Code
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    # ... the rest of your URLconf goes here ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

TástáilLink to this heading

Agus tástálacha á <django.test.LiveServerTestCase>reáchtáil a úsáideann iarratais HTTP iarbhír in ionad an cliant tástála ionsuite (ie agus an t-ion:class: LiveServerTestCase 'á úsáid) ní mór na sócmhainní statacha a sheirbheáil feadh an chuid eile den ábhar ionas go atáirgeann an timpeallacht tástála fíor chomh dílis agus is féidir, ach níl ach feidhmiúlacht seirbhíse comhad statach an-bhunúsach aige: Níl a fhios aige faoi ghné aimsitheoirí an `````feidhmchlár staticfiles ``agus glacann sé go bhfuil an t-ábhar statach bailíodh cheana féin fao:setting: `STATIC_ROOT.

Mar gheall air seo, seolann staticfiles` a chuid féin: class: django.contrib.staticFiles.Testing.staticLiveServerTestCase, fo-aicme den ceann ionsuite a bhfuil sé de chumas freastal ar na sócmhainní go trédhearcach le linn na dtástálacha seo a fhorghníomhú ar bhealach an-chosúil leis an méid a fhaighimid ag am forbartha le DEBUG = True`, ie gan gá a bhailiú iad ag baint úsáidea:djadmin: collectstatic ar dtús.

ImscaradhLink to this heading

django.contrib.staticfiles provides a convenience management command for gathering static files in a single directory so you can serve them easily.

  1. Socraigh an socrú:setting: STATIC_ROOT chuig an eolaire uaidh ar mhaith leat na comhaid seo a sheirbheáil, mar shampla:

    Code
    STATIC_ROOT = "/var/www/example.com/static/"
    
  2. Rith an t-ordú bainistíochta: djadmin: collectstatic:

    Shell
    $ python manage.py collectstatic
    

    Déanfaidh sé seo gach comhad ó do fhillteáin statacha a chóipeáil isteach san eolair:setting: STATIC_ROOT.

  3. Úsáid freastalaí gréasáin de do rogha chun na comhaid a sheirbheáil. :doc: /howto/static-files/deployment clúdaíonn roinnt straitéisí imscartha coitianta do chomhaid statacha.

Tuilleadh eolaisLink to this heading

Clúdaigh an doiciméad seo na buneilimintí agus roinnt patrúin úsáide coitianta Le haghaidh sonraí iomlána ar na socruithe go léir, orduithe, clibeanna teimpléad, agus píosaí eile atá san áireamh in:mod: django.contrib.staticfiles, féach: doc: `the staticfiles tagair</ref/contrib/staticfiles> '.