Back to top

Autore Topic: spostare <link rel="stylesheet"> prima di <script>  (Letto 4415 volte)

Offline eos87

  • Nuovo arrivato
  • *
  • Post: 27
    • Mostra profilo
spostare <link rel="stylesheet"> prima di <script>
« il: 30 Mag 2011, 11:41:48 »
salve a tutti!
Tempo fa ho letto a proposito delle regole di Steve Souders per migliorare le prestazioni dei siti, e fra queste ce n'è una una in particolare che mi interessava implementare anche in un sito creato con Joomla: collocare in alto tutti i fogli di stile, posizionandoli prima degli eventuali script (per favorire il rendering progressivo della pagina ecc. ecc.).
Ora, tutto ciò che viene visualizzato nell'header del documento joomla deriva dal codice <jdoc:include type="head" /> (che include dopo i vari meta tag anche il richiamo dei file javascript); dopodichè, a chiusura del suddetto jdoc:include, vengono inseriti nel codice sorgente i fogli di stile (collegati tramite il tag <link>).
La mia domanda è: come potrei fare per modificare il <jdoc:include ../>, di modo che il tag <link rel="stylesheet"> venga posizionato prima dei tag <script>?

Se intervengo dal pannello di controllo direttamente nel codice della pagina generale del template, e scrivo i tag per collegare i CSS prima del <jdoc:include type="head" />, il risultato è questo:

<head>
<link rel="stylesheet" href="/templates/jt004_j16/css/styles.css" type="text/css" />
  <base href="http://www.xxx.com/index.php" />
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <meta name="robots" content="index, follow" />
  <meta name="keywords" content="" />
  <meta name="rights" content="" />
  <meta name="language" content="it-IT" />
  <meta name="title" content="" />
  <meta name="author" content="" />
  <meta name="generator" content="Joomla! 1.6 - Open Source Content Management" />
  <title>xxx</title>
  <link href="xxx.feed?type=rss" rel="alternate" type="application/rss+xml" title="RSS 2.0" />
  <link href="xxx.feed?type=atom" rel="alternate" type="application/atom+xml" title="Atom 1.0" />
  <link href="/templates/jt004_j16/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon" />
  <script src="/media/system/js/core.js" type="text/javascript"></script>
  <script src="/media/system/js/mootools-core.js" type="text/javascript"></script>
  <script src="/media/system/js/caption.js" type="text/javascript"></script>
  <script src="/media/system/js/mootools-more.js" type="text/javascript"></script>
  <script type="text/javascript">
      window.addEvent('domready', function() {
         xxx
      });
  </script>
</head>


...in pratica i file css vengono caricati prima che il browser possa leggere i tag base, meta, title ecc.
Quello che vorrei, invece, è poter far sì che Joomla crei i tag <link> dei CSS all'interno del <idoc:include ../>, posizionandoli però prima dei tag <script>. Per riprendere il codice di esempio, il risultato che mi piacerebbe ottenere è questo:

<head>
  <base href="http://www.xxx.com/index.php" />
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <meta name="robots" content="index, follow" />
  <meta name="keywords" content="" />
  <meta name="rights" content="" />
  <meta name="language" content="it-IT" />
  <meta name="title" content="" />
  <meta name="author" content="" />
  <meta name="generator" content="Joomla! 1.6 - Open Source Content Management" />
  <title>xxx</title>
  <link href="xxx.feed?type=rss" rel="alternate" type="application/rss+xml" title="RSS 2.0" />
  <link href="xxx.feed?type=atom" rel="alternate" type="application/atom+xml" title="Atom 1.0" />
  <link href="/templates/jt004_j16/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon" />
<link rel="stylesheet" href="/templates/jt004_j16/css/styles.css" type="text/css" />
  <script src="/media/system/js/core.js" type="text/javascript"></script>
  <script src="/media/system/js/mootools-core.js" type="text/javascript"></script>
  <script src="/media/system/js/caption.js" type="text/javascript"></script>
  <script src="/media/system/js/mootools-more.js" type="text/javascript"></script>
  <script type="text/javascript">
      window.addEvent('domready', function() {
         xxx
      });
  </script>
</head>


Spero di essermi spiegata bene, e spero tanto che esista una soluzione a questo mio dubbio.. Ringrazio mille in anticipo chiunque voglia darmi qualche buon consiglio  :)



Offline tonicopi

  • Global Moderator
  • Instancabile
  • ********
  • Post: 12790
  • Sesso: Maschio
    • Mostra profilo
Re:spostare <link rel="stylesheet"> prima di <script>
« Risposta #1 il: 30 Mag 2011, 12:27:23 »
Non che sia propriamente una questione di template...
Ho provato cmq a dare un'occhiatina  e direi che il file dove metter mano per modificare l'ordine di stampa nei tag head lo trovi qui:
libraries\joomla\document\html\renderer\head.php
 ;)
joomlacsszengarden.com = il giardino dei css di Joomla!
L'attesa del piacere è essa stessa... piacere!

Offline eos87

  • Nuovo arrivato
  • *
  • Post: 27
    • Mostra profilo
Re:spostare <link rel="stylesheet"> prima di <script>
« Risposta #2 il: 30 Mag 2011, 13:57:41 »
Ringrazio per pronta risposta, e chiedo scusa se non ci ho proprio preso con la sezione del forum dove postare il mio messaggio  ::)

ho raggiunto il file indicato, (premetto che non conosco il linguaggio php, non saprei come intervenire) tuttavia mi sembra che la funzione per generare il tag <link> venga prima di quella per il tag <script>...quindi non capisco...quando analizzo il codice sorgente prodotto dal browser mi piazza cmq il foglio di stile dopo il <jdoc:include type="head" />..

Potrebbe dirmi cosa scrivere nello specifico? Non saprei proprio come cavarmela altrimenti...

 



Web Design Bolzano Kreatif