2017-07-24 13 views
1

Ich habe eine PWA gehostet @https://grassrootsapp.in/ und es funktioniert super.htacess: WP wie neu schreiben funktioniert nicht für meine PWA

Nun würde Ich mag alle URLs umschreiben wie http://grassrootsapp.in/n/5/thozhan/e/393/chennai--traffic-awareness-campaign

so werden sie von index.html serviert. Die tatsächliche Inhalt für jede URL wird von index.html behandelt werden (das ist ein PWA)

RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

ich nur kopiert .htaccess von Wordpress, die genau gleiche Logik hat. Mit über .htaccess, wird meine index.html für den obigen Link dient http://grassrootsapp.in/n/5/thozhan/e/393/chennai--traffic-awareness-campaign

Aber das Problem ist, alle resouces in index.html genannt wie

build/vendor.js 
build/main.js 

sind auch mit Inhalt von index.html serviert anstatt der eigentlichen Datei. Was mache ich falsch?

Antwort

1

Das "Problem" scheint zu sein, dass Sie relative URLs in Ihrem clientseitigen HTML zu diesen statischen Ressourcen verwenden. Wenn Ihre Seiten-URL https://example.com/n/5/thozhan/e/393/chennai--traffic-awareness-campaign ist und Sie eine relative URL zu einer JavaScript-Datei wie build/vendor.js haben, dann wird der Browser Anfrage https://example.com/n/5/thozhan/e/393/build/vendor.js - die ich vermute, existiert nicht. Alle Anfragen für nicht existierende Ressourcen werden durch Ihre .htaccess Direktiven in index.php umgeschrieben (oder ist das index.html?).

Idealerweise müssen Sie diese relativen URLs root-relativ ändern (beginnend mit einem Schrägstrich, z. B. /build/vendor.js) oder sogar absolut (mit einem Schema + Hostname). Damit der Browser die URL korrekt auflöst.

Alternativ können Sie auch ein base-Element in den Abschnitt head des Dokuments einfügen, der die absolute URL enthält, auf die alle relativen URLs in Bezug auf die Seite bezogen sind. Zum Beispiel:

<base href="https://example.com/index.html"> 

Sie sollten jedoch beachten, dass das base Element ist nicht ohne Vorbehalte. Insbesondere, wenn Sie In-Page-Anker verwenden, die nur Fragment-IDs verwenden. Da diese nun relativ zu der im Element base angegebenen URL sind, ist dies nicht die URL der aktuellen Seite.

Verwandte Themen