2017-10-13 2 views
2

Ich habe eine Seite mit folgenden Struktur zu entwickelnWie mit http2-Push und Unterverzeichnissen umgehen?

  • Haupt-Website + .htaccess
    • Fr Unterverzeichnis (für Französisch)
    • En Unterverzeichnis (für Englisch)
    • Assets Unterverzeichnis für Bilder, js und css

Der .htaccess enthält einen http2 Server-Push wie folgt:

<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> 

Das Problem ist, dass der Server der style.css auch in dem Französisch und Englisch Unterverzeichnissen drückt in einem 404 resultierenden (und geht dann zu laden der richtige ohne Server Push, wobei ../assets/base/css/style.css).

Wie kann man dies vermeiden ODER (vorzugsweise) die Datei in alle Verzeichnisse schieben, aber auf die richtige Datei zeigen?

Antwort

0

Du drückst einen relativen Pfadstylesheet:

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

Warum nicht schieben ein absolutes ?:

Oder alternativ Einsatzort oder Location statt 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

Leider ist es in der htaccess so locationmatch wird nicht funktionieren ... Der absolute Pfad, an den ich nicht gedacht habe, aber Angst, dass es ein zusätzliches Nachschlagen erfordern würde (negiert den Geschwindigkeitsvorteil des Server-Push), aber es ist eine gute Idee. Ich werde es testen, danke! – Cerby

+0

Warum sollte eine zusätzliche Suche erforderlich sein? –

+0

Sie haben absolut Recht, es tut es nicht. Die absolute Pfadangabe funktioniert übrigens einwandfrei. Vielen Dank! – Cerby

Verwandte Themen