Kompilere malen

Når du kompilerer malen din, oppretter den en statisk HTML-side for hver enkelt side i filen structure.json for området i malen.

Kompileringstrinnet kombinerer sidemetadataene (for eksempel 100.json) med sideoppsettet (for eksempel about.html), slik at du får en HTML-side som vises umiddelbart uten behov for en kontroller under kjøring. Med de egendefinerte kompilatorene kan du redusere JavaScript-utførelsen under kjøring ytterligere ved å få tidligere dynamiske elementer, som navigering og komponenter, kompilert til siden.

Kommandoen cec compile-template utfører følgende handlinger for hver side på området:

  • Lese inn område- og sidemetadataene
  • Lese inn sideoppsettet og bruke en hvilken som helst sideoppsettskompilator
  • For hvert spor på siden:
    • Utvide sporet med rutenettet som er definert i filen page.json
    • For hver komponent i sporet:
      • Bruke en hvilken som helst komponentkompilator
      • Sette inn den genererte komponentkoden på det tilsvarende stedet i sporet
  • Utvide hvilke som helst makroer i den kompilerte koden og sette inn SCS JavaScript-objektet som brukes av Oracle Content Management-gjengiveren under kjøring
  • Lagre koden for den kompilerte siden under mappen src/templates/<template>/static

Når du skal kompilere området, kjører du følgende:

> cec compile-template BlogTemplate
Compile Template: compiling template BlogTemplate
Oracle Content Management Site Compiler

createPage: Processing pageId 100. Preview URL: 
http://localhost:8085/templates/BlogTemplate/index.html 
createPage: Processing pageId 105. Preview URL: 
http://localhost:8085/templates/BlogTemplate/post-detail.html 
createPage: Processing pageId 401. Preview URL: 
http://localhost:8085/templates/BlogTemplate/about.html 
createPage: Processing pageId 402. Preview URL: 
http://localhost:8085/templates/BlogTemplate/search.html 
createPage: Processing pageId 403. Preview URL: 
http://localhost:8085/templates/BlogTemplate/authors.html 
All page creation calls complete.

Creating detail pages: 
createPage: Processing detail pageId 105. Preview URL: 
http://localhost:8085/templates/BlogTemplate/post-detail/1481786063051-developing-content-layout- for-content-and-experience-cloud
createPage: Processing detail pageId 105. Preview URL: 
http://localhost:8085/templates/BlogTemplate/post-detail/1481786063052-dynamic-dom- manipulation-in-content-layout 
createPage: Processing detail pageId 105. Preview URL: 
http://localhost:8085/templates/BlogTemplate/post-detail/1481786063045-getting-media-url-in- the-content-layout 
createPage: Processing detail pageId 105. Preview URL: 
http://localhost:8085/templates/BlogTemplate/post-detail/1481786063053-getting-reference- items-in-content-layout 
createPage: Processing detail pageId 105. Preview URL: 
http://localhost:8085/templates/BlogTemplate/post-detail/1481786063048-navigating-to-a- search-page-with-search-query 
createPage: Processing detail pageId 105. Preview URL: 
http://localhost:8085/templates/BlogTemplate/post-detail/1481786063050-alex-read 
createPage: Processing detail pageId 105. Preview URL: 
http://localhost:8085/templates/BlogTemplate/post-detail/1481786063047-jerrold-summers 
createPage: Processing detail pageId 105. Preview URL: 
http://localhost:8085/templates/BlogTemplate/post-detail/1481786063049-kelly-emerson 
createPage: Processing detail pageId 105. Preview URL: 
http://localhost:8085/templates/BlogTemplate/post-detail/1481786063043-samantha-howard 
createPage: Processing detail pageId 105. Preview URL: 
http://localhost:8085/templates/BlogTemplate/post-detail/1481786063046-raising-triggers-from- content-layout 
createPage: Processing detail pageId 105. Preview URL: 
http://localhost:8085/templates/BlogTemplate/post-detail/1481786063044-rendering-the-content- layout-using-mustache-template 
All detail page creation calls complete.

Kompileringsfeil

Under kompileringen får du tre typer meldinger: opplysninger, advarsel og feil.

  1. Opplysningsmeldinger handler om problemer du må være oppmerksom på, men disse meldingene må sannsynligvis forventes som en del av kompileringen:
    • Elementer med plassholderinnhold som blir gjengitt under kjøring.
    • Manglende sideoppsettskompilatorer. Sideoppsett har kanskje ikke noe dynamisk element, og det blir derfor ikke betraktet som et problem hvis de mangler.
    • Elementer som er merket med gjengi ved tilgang, det vil si at områdeutviklere ønsker at denne komponenten skal gjengis dynamisk under kjøring selv om siden er kompilert.
  2. Advarselsmeldinger handler om problemer som sannsynligvis kommer til å påvirke ytelsen til det kjørende området, og de bør løses der det er mulig. Dette er elementer i denne kategorien:
    • Manglende innholdsoppsett eller egendefinerte komponentkompilatorer. Uten disse blir komponentene gjengitt dynamisk på siden på samme måte som tidligere.
    • Manglende innholdsoppsettskart. Det er usannsynlig at du ønsker å bruke innholdsoppsettet som er standard for systemet, til å gjengi innholdselementer.
  3. Feilmeldinger handler om problemer som angir en kompileringsfeil. Sidene fortsetter å kompileres der det er mulig, men den samlede kompileringen blir avsluttet med en feil.
    • Den skyldes mest sannsynlig JavaScript-feil i egendefinerte kompilatorer, og eventuelle feil må løses.

Merknad:

For at meldinger ikke skal gjentas så ofte, vises samme melding bare én gang per kompilering, uansett om den forekommer på flere sider.

Det forrige eksemplet har følgende status for kompileringsavslutning:

Compilation completed with 0 errors and 3 warnings. 
to display warnings, run with --verbose (-v) option.

Hvis du kjører kompileringstrinnet på nytt med alternativet -v, ser du følgende utdata:

> cec compile-template BlogTemplate --verbose
Compile Template: compiling template BlogTemplate 
Oracle Content Management Site Compiler

createPage: Processing pageId 100. Preview URL: 
http://localhost:8085/templates/BlogTemplate/index.html 
createPage: Processing pageId 105. Preview URL: 
http://localhost:8085/templates/BlogTemplate/post-detail.html
Info: no content item specified for placeholder: a890a65c-c0fc-451b-966b-e606ca18a1f4 
component will render at runtime. 
Info: no content item specified for placeholder: c90bbc10-c9d8-4a54-8dd4-7a8251e8efbb 
component will render at runtime. 
Info: no content item specified for placeholder: f12691e1-79ab-4d1f-a8b9-3af8c638dd26 
component will render at runtime.
createPage: Processing pageId 401. Preview URL: 
http://localhost:8085/templates/BlogTemplate/about.html 
createPage: Processing pageId 402. Preview URL: 
http://localhost:8085/templates/BlogTemplate/search.html
Info: Component: "fdfd0392-e901-48f6-8044-36803c836aa1" of type "scs-contentlist" marked as 
"render on access", will not be compiled. 
Info: Component: "ba9f3711-4367-444e-ae38-71289fc10e73" of type "scs-contentlist" marked as 
"render on access", will not be compiled. 
createPage: Processing pageId 403. Preview URL: 
http://localhost:8085/templates/BlogTemplate/authors.html 
All page creation calls complete. 

Creating detail pages: 
createPage: Processing detail pageId 105. Preview URL: 
http://localhost:8085/templates/BlogTemplate/post-detail/1481786063051-developing-content- layout-for-content-and-experience-cloud 
createPage: Processing detail pageId 105. Preview URL: 
http://localhost:8085/templates/BlogTemplate/post-detail/1481786063052-dynamic-dom- manipulation-in-content-layout 
createPage: Processing detail pageId 105. Preview URL: 
http://localhost:8085/templates/BlogTemplate/post-detail/1481786063045-getting-media-url-in- the-content-layout 
createPage: Processing detail pageId 105. Preview URL: 
http://localhost:8085/templates/BlogTemplate/post-detail/1481786063053-getting-reference- items-in-content-layout 
createPage: Processing detail pageId 105. Preview URL: 
http://localhost:8085/templates/BlogTemplate/post-detail/1481786063048-navigating-to-a- search-page-with-search-query 
createPage: Processing detail pageId 105. Preview URL: 
http://localhost:8085/templates/BlogTemplate/post-detail/1481786063050-alex-read 
Warning: failed to find content layout map entry for: Starter-Blog-Author:header. Will compile 
using the system default layout.
Warning: failed to find content layout map entry for: Starter-Blog-Author:content. Will compile 
using the system default layout. 
Warning: failed to find content layout map entry for: Starter-Blog-Author:sidebar. Will compile 
using the system default layout.  
createPage: Processing detail pageId 105. Preview URL: 
http://localhost:8085/templates/BlogTemplate/post-detail/1481786063047-jerrold-summers 
createPage: Processing detail pageId 105. Preview URL: 
http://localhost:8085/templates/BlogTemplate/post-detail/1481786063049-kelly-emerson 
createPage: Processing detail pageId 105. Preview URL: 
http://localhost:8085/templates/BlogTemplate/post-detail/1481786063043-samantha-howard 
createPage: Processing detail pageId 105. 
Preview URL: http://localhost:8085/templates/BlogTemplate/post-detail/1481786063046-raising-triggers-from- content-layout 
createPage: Processing detail pageId 105. Preview URL: 
http://localhost:8085/templates/BlogTemplate/post-detail/1481786063044-rendering-the-content- layout-using-mustache-template 
All detail page creation calls complete. 

Compilation completed with 0 errors and 3 warnings. 

*** compiled template is ready to test 
*** to render non-compiled pages, remove compiled files from under: /private/tmp/cec-
src/src/templates/BlogTemplate/static

Detaljsidekompilering

Detaljsidekompilering sorterer alle innholdselementene det støter på under kompileringen. Deretter kompilerer det detaljsiden på nytt for hvert innholdselement det støter på, ved å bruke kortkoblingsverdien til å definere URL-adressen til den nye detaljsiden.

Resultatet av forrige kompilering har to deler:

  1. Sidekompilering
  2. Detaljsidekompilering

I det forrige eksemplet ser du advarsler om at det ikke finnes noen oppføringer på innholdsoppsettskartet for Starter-Blog-Author-siden. Vi ønsker imidlertid ikke detaljsider for Starter-Blog-Author. Detaljsiden er bare for innholdselementer av typen Starter-Blog-Post. Når vi skal fjerne disse feilene, kan vi utelate innholdselementer fra detaljsidekompilering hvis de ikke har en eksplisitt detaljsidereferanse i innstillingene sine, med følgende alternativ:

--noDefaultDetailPageLink, -o  Do not generate compiled detail page for items/content lists
      that use the default detail page.

Ny kjøring av kompileringen som utelater opprettelse av detaljsider som bruker standarddetaljsiden, produserer altså følgende utdata:

> cec compile-template BlogTemplate --noDefaultDetailPageLink 
Compile Template: compiling template BlogTemplate 
Oracle Content Management Site Compiler 

createPage: Processing pageId 100. Preview URL: 
http://localhost:8085/templates/BlogTemplate/index.html 
createPage: Processing pageId 105. Preview URL: 
http://localhost:8085/templates/BlogTemplate/post-detail.html 
createPage: Processing pageId 401. Preview URL: 
http://localhost:8085/templates/BlogTemplate/about.html 
createPage: Processing pageId 402. Preview URL: 
http://localhost:8085/templates/BlogTemplate/search.html 
createPage: Processing pageId 403. Preview URL: 
http://localhost:8085/templates/BlogTemplate/authors.html 
All page creation calls complete.

Creating detail pages: 
createPage: Processing detail pageId 105. Preview URL: 
http://localhost:8085/templates/BlogTemplate/post-detail/1481786063051-developing-content-
layout-for-content-and-experience-cloud
createPage: Processing detail pageId 105. Preview URL:
http://localhost:8085/templates/BlogTemplate/post-detail/1481786063052-dynamic-dom -manipulation-in-content-layout
createPage: Processing detail pageId 105. Preview URL: 
http://localhost:8085/templates/BlogTemplate/post-detail/1481786063045-getting-media-url-in- the-content-layout
createPage: Processing detail pageId 105. Preview URL:  
http://localhost:8085/templates/BlogTemplate/post-detail/1481786063053-getting-reference- items-in-content-layout
createPage: Processing detail pageId 105. Preview URL: 
http://localhost:8085/templates/BlogTemplate/post-detail/1481786063048-navigating-to-a- search-page-with-search-query
All detail page creation calls complete.

Compilation completed with no errors.

*** compiled template is ready to test 
*** to render non-compiled pages, remove compiled files from under: /private/tmp/cec-
src/src/templates/BlogTemplate/static

Kompilere bestemte sider

Du trenger ikke å kompilere alle sidene i malen, og du kan velge hvilke sider som skal kompileres. Dette er nyttig hvis du arbeider med bestemte sider som du vil utføre feilleting på eller oppdatere i stedet for å måtte omkompiere hele området kontinuerlig.

Hvis du skal kompilere bestemte sider, bruker du alternativet --pages (-p) etterfulgt av listen over sider du er interessert i å kompilere.

Merknad:

Merknad: Hvis det finnes innholdselementer på detaljsidene i listereferansen, blir detaljsidene også kompilert selv om de ikke er inkludert eksplisitt.

cec compile-template BlogTemplate --pages 401,402 
Compile Template: compiling template BlogTemplate 
Oracle Content Management Site Compiler

createPage: Processing pageId 401. Preview URL: 
http://localhost:8085/templates/BlogTemplate/about.html 
createPage: Processing pageId 402. Preview URL: 
http://localhost:8085/templates/BlogTemplate/search.html 
All page creation calls complete.

Compilation completed with no errors. 
*** compiled template is ready to test 
*** to render non-compiled pages, remove compiled files from under: /private/tmp/cec- 
src/src/templates/BlogTemplate/static