Che cosa potrebbe causare CSS per non riuscire a carico di tanto in tanto su tutti i browser?
Domanda
Sto lavorando su una webapp, e ogni tanto ci si imbatte in situazioni in cui le pagine si caricano senza applicare i CSS.Questo problema ha dimostrato in IE6, IE7, Safari 3, e FF3.
L'aggiornamento di una pagina sarà sempre risolvere il problema.
Ci sono 3 file CSS caricato, tutto all'interno dello stesso blocco di stile con @import:
<STYLE type="text/css">
@import url([base css file]);
@import url([skin css file]);
@import url([generated css path]);
</STYLE>
In qualsiasi situazione quando ci prendiamo il tempo per esaminare il sorgente html, niente al di fuori del comune.I registri di accesso sembra normale, come pure - stiamo ricevendo HTTP 304 risposte per la statica file CSS ogni volta che vengono richiesti, e un HTTP di risposta 200 per il nostro generato CSS.
Il tipo mime è text/css per il file css e css generato.Stiamo usando un iPlanet server che inoltra le richieste a un server Tomcat.
davebug chiesto:
È sempre lo stesso file css non si carica, o il problema è con tutti loro, in modo uniforme?
Nessuno dei file CSS carico.Tutti gli stili definiti nel codice HTML funzionare bene, ma in nessuno dei file CSS funziona quando questo accade.
Soluzione
Ho avuto una cosa simile capita che ero in grado di risolvere inserendo una base del foglio di stile utilizzando prima i "link rel" metodo piuttosto che "@import".cioèspostare il [base css file] inclusione:
<link rel="stylesheet" href="[base css file]" type="text/css" media="screen" />
e mettere prima degli altri.
Altri suggerimenti
se capita abbastanza spesso che siete in grado di vedere nel tuo browser, prova a intalling Live http headers estensione per Firefox o la Manomissione di Dati di estensione, e guardare le intestazioni di risposta come sono visti dal browser.
Non so perché, ma nel mio caso se la pagina viene caricata da un'azione con il percorso come /ActionName
, Vedo questo problema.
Ma se devo cambiare (per esempio) per /reservedArea/ActionName
o /aPath/ActionName
funziona :/
E ' pazzesco...
Esaminando le intestazioni è una buona idea, ma immagino che tutti si può imparare da loro è che il server non ha risposto a una richiesta, una volta ogni tanto.
Vedo che questo accada tutto il tempo in rete.Le immagini non è possibile caricare fino a quando si aggiorna, il css è incasinato, etc.In tutte le situazioni che si risolvono con un aggiornamento.
Immagino che un modo per "risolvere" questo, forse, è da specificare nel file cs url di un'immagine di qualche elemento.Quindi, al caricamento di una pagina in javascript, ottenere l'elemento e vedere se l'immagine è stata caricata.Se non, quindi il ricaricamento della pagina stessa.
Sembra abbastanza esotico, ma è l'unica idea che ho avuto...
Utilizzare ab o httperf o arricciare o qualcosa di caricare più volte il CSS file dal server web.Forse non sempre servono le pagine.