2010-11-29 3 views
1

J'utilise this guide pour créer un HTTPHandler qui combine les fichiers script et CSS pour les envoyer en une seule requête.Css ignorer tout après la première classe

Fondamentalement, il lit un tas de fichiers .css dans un tableau d'octets et response.writes les octets au client avec un type de contenu texte/css (ou text/javascript)

Lorsque vous utilisez Firebug il semble que le CSS passe bien ... tout est là. Cependant, le navigateur lui-même ne fera que rendre CSS qui est dans le premier fichier utilisé dans l'action de combinaison.

Exemple:

File1.css: body {font-size: 20px; } h1 {couleur: rouge; }

File2.css: div {frontière: solide 1px noir; }

Tout le CSS est visible via Firebug dans l'onglet CSS ... cependant la classe de File2.css n'est pas réellement appliquée à divs sur la page. Si je retourne l'ordre des fichiers, les divs obtiennent une bordure, mais rien de File1.css n'est appliqué.

Les fichiers Javascript fonctionnent très bien, mais le CSS m'a complètement déconcerté!

EDIT MONTRER CSS COPIES DE Firebug

body { 
font-size:22px; 
} 
h1 { 
color:Red; 
text-decoration:underline; 
} 
div { 
border:1px solid black; 
} 

ICI IL EST DU TAB NET, LA RÉPONSE GÉNÉRÉ RÉEL

ParamsHeadersPostPutResponseCacheHTML 
Response Headersview source 
Server ASP.NET Development Server/9.0.0.0 
Date Mon, 29 Nov 2010 01:10:26 GMT 
X-AspNet-Version 2.0.50727 
Transfer-Encoding chunked 
Cache-Control public, must-revalidate, proxy-revalidate, max-age=259200 
Expires Thu, 02 Dec 2010 01:10:26 GMT 
Content-Type text/css 
Connection Close 
Request Headersview source 
Host localhost:49598 
User-Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 
Accept text/css,*/*;q=0.1 
Accept-Language en-us,en;q=0.5 
Accept-Encoding gzip,deflate 
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7 
Keep-Alive 115 
Connection keep-alive 
Referer http://localhost:49598/ 



body 
{ 
    font-size: 22px; 

} 

h1 
{ 
    color: Red; 
    text-decoration: underline; 
}div 
{ 
    border: solid 1px black; 
} 

Nouveau développement. Si je crée les fichiers .css dans le bloc-notes tout fonctionne bien. VS2008 ajoute-t-il quelque chose d'invisible au fichier lors de la création d'un fichier de feuille de style?

FIDDLER textview (J'sais où les personnages supplémentaires provenaient Intéressant

9a 


body 
{ 
    font-size: 22px; 

} 

h1 
{ 
    color: Red; 
    text-decoration: underline; 
}div 
{ 
    border: solid 1px black; 
} 
0 
+1

peut vous envoyer le code CSS réelle reçue par Firebug? –

+0

body { police-taille: 22px; } h1 { couleur: rouge; text-decoration: souligner; } div { bordure: 1px noir uni; } –

+1

s'il vous plaît modifier votre question et afficher le CSS reçu en utilisant des blocs de code afin que nous puissions le voir correctement formaté –

Répondre

1

Dans les GetFileBytes changer les lignes suivantes

byte[] bytes = File.ReadAllBytes(physicalPath); 
    // TODO: Convert unicode files to specified encoding. For now, assuming 
    // files are either ASCII or UTF8 
    return bytes; 

À

string content = File.ReadAllText(physicalPath, encoding); 
    return encoding.GetBytes(content); 
+0

A travaillé magnifiquement. Je voudrais toujours découvrir pourquoi Microsoft semble mettre des caractères non UTF8 dans les feuilles de style générées via VS2008, mais cela fera l'affaire pour l'instant. Merci. Une idée si le surcoût supplémentaire dans la lecture du texte, puis la conversion en octets sera perceptible? –

+0

La surcharge est un facteur de la longueur du fichier, mais je dirais que ce ne serait pas perceptible. En supposant que vous utilisez le mécanisme de cache défini dans le guide que vous avez mentionné, le surcoût n'est supporté que lorsque le cache n'est pas valide. – Jonathan

0

Je ne sais pas ce qui ne va pas,..., Si l'onglet CSS Firebug voit le CSS, il devrait rendre

Effacez le cache (Ctrl + F5) et redémarrer Firefox

Essayez d'ajouter une nouvelle ligne entre les fichiers CSS sur le serveur;.. il y a une faible possibilité que cela pourrait aider

+0

C'est ce que je pensais aussi. J'ai essayé ces suggestions en vain. C'est vraiment étrange. Pire encore, j'ai déjà fait ça avec un code apparemment identique sans aucun problème. Merci d'avoir jeté un coup d'oeil si! –

+0

Je suis perplexe. Si vous pouvez me montrer une démo (non-travail), je peux enquêter plus loin. – SLaks

+0

Je n'ai pas vraiment le moyen de l'obtenir facilement sur un site public en ce moment. Je vais laisser un commentaire si/quand je le fais et/ou ne le résous pas. –

Questions connexes