Statische weergavebestanden gebruiken
Het statische bevel van de meningsdossiers plaatsing laat u toe om statische dossiers aan het het dossiersysteem van Commerce te schrijven wanneer de software van Commerce voor productiemoduswordt geplaatst.
Het termijn statische meningsdossier verwijst naar het volgende:
- "Statisch" betekent dat het bestand voor een site in de cache kan worden geplaatst (het bestand wordt dus niet dynamisch gegenereerd). Voorbeelden zijn afbeeldingen en CSS die zijn gegenereerd op basis van LESS.
- De "Mening"verwijst naar presentatielaag (van MVC).
Statische weergavebestanden bevinden zich in de map <magento_root>/pub/static
en sommige bestanden worden in de map <magento_root>/var/view_preprocessed
opgeslagen.
De plaatsing van statische meningsdossiers wordt beïnvloed door toepassingswijzen als volgt:
- Gebreken ontwikkelaarwijzen: Commerce produceert hen op bestelling, maar de rest wordt in het voorgeheugen ondergebracht in een dossier voor snelheid van toegang.
- Productiewijze: De statische dossiers worden niet geproduceerd of in het voorgeheugen ondergebracht.
U moet statische meningsdossiers aan het het dossiersysteem van Commerce manueel schrijven gebruikend het bevel in dit onderwerp wordt besproken; daarna kunt u toestemmingen beperken om uw kwetsbaarheid te beperken en toevallig of kwaadwillig het beschrijven van dossiers te verhinderen.
om statische meningsdossiers op te stellen:
-
Login aan de server van Commerce als, of schakelaar aan de eigenaar van het dossiersysteem.
-
Verwijder de inhoud van
<magento_root>/pub/static
, met uitzondering van het.htaccess
-bestand. Verwijder dit bestand niet. -
Voer het gereedschap voor het implementeren van statische weergavebestanden
<magento_root>/bin/magento setup:static-content:deploy
uit.note info INFO Als u het samenvoegen van statische weergavebestanden inschakelt in Admin, moet het directorysysteem van pub/static
schrijfbaar zijn.Opdrachtopties:
code language-bash bin/magento setup:static-content:deploy [<languages>] [-t|--theme[="<theme>"]] [--exclude-theme[="<theme>"]] [-l|--language[="<language>"]] [--exclude-language[="<language>"]] [-a|--area[="<area>"]] [--exclude-area[="<area>"]] [-j|--jobs[="<number>"]] [--no-javascript] [--no-css] [--no-less] [--no-images] [--no-fonts] [--no-html] [--no-misc] [--no-html-minify] [--no-parent] [-f|--force]
De volgende lijst verklaart de parameters en de waarden van dit bevel.
<languages>
en_US
.)vind de lijst door te lopen:
bin/magento info:language:list
--language (-l)
Bijvoorbeeld:
--language en_US --language es_ES
--exclude-language
--theme <theme>
Bijvoorbeeld:
--theme Magento/blank --theme Magento/luma
--exclude-theme <theme>
Bijvoorbeeld,
--exclude-theme Magento/blank
--area (-a)
adminhtml
en frontend
. De standaardwaarde is allen.Bijvoorbeeld:
--area adminhtml
--exclude-area
--jobs (-j)
--symlink-locale
--content-version=CONTENT-VERSION
--no-javascript
--no-css
--no-less
--no-images
--no-fonts
--no-html
--no-misc
--no-html-minify
-s <quick|standard|compact>
De implementatiestrategie definiëren. Gebruik deze opties alleen als u meerdere lokale instellingen hebt.
- Gebruik de snelle strategieom plaatsingstijd te minimaliseren. Dit is de standaardoptie van het bevel als niet gespecificeerd.
- Gebruik de standaardstrategieom alle statische meningsdossiers voor alle pakketten op te stellen.
- Gebruik de compacte strategieom schijfruimte op de server te besparen.
--no-parent
--force (-f)
<languages>
als --language
, heeft <languages>
voorrang.Voorbeelden
Hier volgen enkele voorbeelden van opdrachten.
Een thema en HTML-miniatuur uitsluiten
Het volgende bevel stelt statische inhoud voor de Engelse (en_US
) taal van de V.S. op, sluit het thema van de Luma uit die van Commerce wordt voorzien, en minieme HTML dossiers niet.
bin/magento setup:static-content:deploy en_US --exclude-theme Magento/luma --no-html-minify
Voorbeelduitvoer:
Requested languages: en_US
Requested areas: frontend, adminhtml
Requested themes: Magento/blank, Magento/backend
=== frontend -> Magento/blank -> en_US ===
=== adminhtml -> Magento/backend -> en_US ===
...........................................................
... more ...
Successful: 2055 files; errors: 0
---
New version of deployed files: 1466710645
............
Successful: 1993 files; errors: 0
---
Het volgende bevel stelt slechts JavaScript, met 4 banen, met een standaardplaatsingsstrategie op:
bin/magento setup:static-content:deploy -s standard --no-misc --no-html --no-fonts --no-images --no-less --no-css -j 4
De volgende opdracht implementeert alleen CSS en LESS met 3 taken en een snelle implementatiestrategie:
bin/magento setup:static-content:deploy -s quick --no-misc --no-html --no-fonts --no-images --no-javascript -j 3
Statische weergavebestanden genereren voor één thema en één gebied
Met de volgende opdracht genereert u statische weergavebestanden voor alle talen, alleen het voorste gebied, alleen het Commerce Luma-thema, zonder lettertypen te genereren:
bin/magento setup:static-content:deploy --area frontend --no-fonts --theme Magento/luma
Voorbeelduitvoer:
Requested languages: en_US
Requested areas: frontend
Requested themes: Magento/luma
=== frontend -> Magento/luma -> en_US ===
...........................................................
... more ...
........................................................................
Successful: 2092 files; errors: 0
---
New version of deployed files: 1466711110
Statische weergavebestanden implementeren zonder Commerce te installeren
U zou het plaatsingsproces in een afzonderlijk, niet-productie, milieu kunnen willen in werking stellen, om het even welke bouwstijlprocessen op gevoelige productiemachines te vermijden.
Voer hiertoe de volgende stappen uit:
- Voer
bin/magento app:config:dump
uit om de configuratie vanuit uw productiesysteem te exporteren. - Kopieer de geëxporteerde bestanden naar de basis van de niet-productiecode.
- Statische weergavebestanden gebruiken:
bin/magento setup:static-content:deploy
Problemen met het implementatieprogramma voor statische weergavebestanden oplossen
installeer eerst de software van Commerce; anders, kunt u niet het statische hulpmiddel van de de plaatsingsdossiers van meningsdossiers in werking stellen.
Symptom: De volgende fout wordt getoond wanneer u het statische hulpmiddel van de de plaatsingsdossiers van meningsdossiers in werking stelt:
ERROR: You need to install the Commerce application before running this utility.
Oplossing:
Voer de volgende stappen uit:
- Installeer de software van Commerce gebruikend de bevellijn.
- Login aan de toepassingsserver als, of schakelaar aan, de eigenaar van het dossiersysteem.
- Verwijder de inhoud van de map
<app_root>/pub/static
, behalve het bestand.htaccess
. Verwijder dit bestand niet. - Statische weergavebestanden gebruiken:
bin/magento setup:static-content:deploy
Tip voor ontwikkelaars die het statische hulpmiddel van de inhoudsimplementatie aanpassen
Wanneer u een aangepaste implementatie van het hulpprogramma voor de implementatie van statische inhoud maakt, gebruikt u alleen het schrijven van atomische bestanden voor bestanden die op de client beschikbaar moeten zijn. Als u niet-atomische bestanden schrijft, kunnen deze bestanden op de client worden geladen met gedeeltelijke inhoud.
Een van de opties om het atomisch te maken is naar bestanden te schrijven die zijn opgeslagen in een tijdelijke map en deze na schrijven naar de doelmap te kopiëren of te verplaatsen (van waar ze naar de client zijn geladen). Voor details over het schrijven aan dossiers, zie php schrijven.