2017-10-13 6 views
2

je développe un site avec la structure suivanteComment faire face à http2-push et sous-répertoires?

  • site principal + htaccess
    • Fr sous-répertoire (pour le français)
    • En sous-répertoire (pour l'anglais)
    • actifs sous-répertoire pour les images, js et css

Le htaccess contient une poussée de serveur HTTP2 comme suit:

<IfModule http2_module> 
SetEnvIf Cookie "cssloaded=1" cssloaded 
<filesMatch "\.([hH][tT][mM][lL]?)"> 
Header add Link "<assets/base/css/style.css>;rel=preload;as=style" env=!cssloaded 
Header add Set-Cookie "cssloaded=1; Path=/; Secure; HttpOnly" env=!cssloaded 
</filesMatch> 

Le problème est que le serveur pousse le style.css aussi dans les sous-répertoires français et en anglais pour résultat une 404 (et procède ensuite à charger la bonne sans pousser le serveur, étant ../assets/base/css/style.css). Comment éviter cela OU (de préférence) pousser le fichier dans tous les répertoires mais en pointant vers le bon fichier?

Répondre

0

Vous poussez une feuille de style de chemin relatif:

Header add Link "<assets/base/css/style.css>;rel=preload;as=style" env=!cssloaded 

Pourquoi ne pas pousser un absolu une ?:

Ou encore, utilisez l'emplacement ou LocationMatch au lieu de fileMatch:

<locationMatch "^/$"> 
Header add Link "<assets/base/css/style.css>;rel=preload;as=style" env=!cssloaded 
Header add Set-Cookie "cssloaded=1; Path=/; Secure; HttpOnly" env=!cssloaded 
</locationMatch> 
<locationMatch "^/en/$"> 
Header add Link "<../assets/base/css/style.css>;rel=preload;as=style" env=!cssloaded 
Header add Set-Cookie "cssloaded=1; Path=/; Secure; HttpOnly" env=!cssloaded 
</locationMatch> 
<locationMatch "^/fr/$"> 
Header add Link "<../assets/base/css/style.css>;rel=preload;as=style" env=!cssloaded 
Header add Set-Cookie "cssloaded=1; Path=/; Secure; HttpOnly" env=!cssloaded 
</locationMatch> 
+0

Malheureusement, il est dans le htaccess donc emplacementmatch ne fonctionnera pas ... Le chemin absolu auquel je ne pensais pas, mais peur que cela nécessite une recherche supplémentaire (nier l'avantage de la vitesse de la poussée du serveur) mais c'est une bonne idée. Je vais le tester merci! – Cerby

+0

Pourquoi cela nécessiterait-il une recherche supplémentaire? –

+0

Vous avez absolument raison, ce n'est pas le cas. La suggestion de chemin absolu fonctionne parfaitement. Merci! – Cerby