2017-07-07 1 views
3

détails système:
serveur: Apache, Ubuntu 16.02
client: Windows 10, ChromePourquoi mon css est-il affiché ?

Mon fichier de configuration apache se présente comme suit:

<VirtualHost *:80> 
     ServerName mycoolsiteA.mydomain.com 
     ServerAlias mycoolsiteB.mydomain.com 

     Alias /static /var/www/python/mysite/static 
     Alias /templates /var/www/python/mysite/templates 

     WSGIDaemonProcess my_app user=www-data group=www-data threads=5 
     WSGIScriptAlias//var/www/python/mysite/start.py 
     WSGIScriptReloading On 

     <Directory /var/www/python/mysite> 
       WSGIProcessGroup my_app 
       WSGIApplicationGroup %{GLOBAL} 
       order deny,allow 
       Allow from all 
     </Directory> 
</VirtualHost> 

Quand je charge le code CSS dans un navigateur, il montre ce qui suit. Cependant, c'est assez aléatoire. Cela «fonctionne» parfois, et parfois non.

Mon exemple url est la suivante: https://mycoolsiteA.mydomain.com/static/css/bs/bootstrap.min.css

Nous avons un appareil de pare-feu qui auto-réoriente http https, mais je suis directement charger le css par https.

Et le résultat ressemble à ceci: enter image description here

Pourtant, si je rafraîchis plusieurs fois, ou ajouter un r = numéro sur la fin, il effacera le cache et la charge. Mais, il le fera de nouveau au hasard jusqu'à ce que je vide le cache encore.

Ici, il est chargé et travail:

enter image description here

Toute pensée, direction où chercher à résoudre ce problème?

+0

Avez-vous accès aux journaux de serveur? Peut-être qu'il y a quelque chose d'intéressant sur le côté serveur. – jdv

+0

@jdv J'ai regardé les journaux Apache et rien. Pas même un indice à une erreur, ou tout ce qui pourrait causer cela. – CodeLikeBeaker

+0

Vérifiez l'encodage des caractères de votre fichier CSS brut. Assurez-vous qu'il est UTF-8 sans nomenclature. – Martin

Répondre

8

Bienvenue dans le monde amusant de l'UTF-8! J'ai vu cela des dizaines de fois en PHP (voir UTF-8 all the way through). Ce que vous éprouvez est presque certainement un fichier UTF-8 étant livré comme un autre encodage de caractères (ou vice-versa). J'ai téléchargé Bootstrap et Notepad ++ les identifie comme codés ANSI. Votre serveur Web pourrait forcer l'utilisation de UTF-8. Regardez les en-têtes de réponse pour quelque chose comme ça

Content-Type: text/css; charset=UTF-8 

Ainsi, votre serveur web dit qu'il est UTF-8, mais il est vraiment pas. À quel point votre navigateur commence à vomir , ce qui signifie qu'il ne reconnaît pas le personnage.

Il y a plusieurs façons de gérer cela si c'est le cas.

  1. Réencoder le fichier en UTF-8 (Notepad++ peut le faire pour vous)
  2. Arrêter le passage d'un UTF-8 par défaut. Votre navigateur tentera d'identifier l'encodage

Juste pour voir, essayez loading the CSS directly from the MaxCDN servers

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> 

Ils ne passent pas UTF-8 tête