2014-09-02 20 views
6

Per le app a singola pagina, è necessario implementare alcune regole di riscrittura avanzate nel proprio server conf per i web crawler proxy ei social media alle versioni pre-render memorizzate nella cache del contenuto JavaScript JavaScript.Firebase hosting SEO per SPA

Utilizzando un servizio come http://prerender.io

Noterete le varie regole di configurazione del server su modelli qui che dimostrano questo proxy: https://prerender.io/getting-started#install-it

Utilizzando il https://www.firebase.com/docs/hosting/guide/url-redirects-rewrites.html supporta Firebase questo livello di sofisticazione?

Per esempio - come avrei implementare this nginx config utilizzando Firebase riscrivere-regole:

server { 
    listen 80; 
    server_name example.com; 

    root /path/to/your/root; 
    index index.html; 

    location/{ 
     try_files $uri @prerender; 
    } 

    location @prerender { 
     #proxy_set_header X-Prerender-Token YOUR_TOKEN; 

     set $prerender 0; 
     if ($http_user_agent ~* "baiduspider|twitterbot|facebookexternalhit|rogerbot|linkedinbot|embedly|quora link preview|showyoubot|outbrain|pinterest") { 
      set $prerender 1; 
     } 
     if ($args ~ "_escaped_fragment_") { 
      set $prerender 1; 
     } 
     if ($http_user_agent ~ "Prerender") { 
      set $prerender 0; 
     } 
     if ($uri ~ "\.(js|css|xml|less|png|jpg|jpeg|gif|pdf|doc|txt|ico|rss|zip|mp3|rar|exe|wmv|doc|avi|ppt|mpg|mpeg|tif|wav|mov|psd|ai|xls|mp4|m4a|swf|dat|dmg|iso|flv|m4v|torrent)") { 
      set $prerender 0; 
     } 

     if ($prerender = 1) { 
      rewrite .* /$scheme://example.com$request_uri? break; 
      proxy_pass http://service.prerender.io; 
     } 
     if ($prerender = 0) { 
      rewrite .* /index.html break; 
     } 
    } 
} 

Come nota a margine - Penso che sia grande che voi ragazzi avete il supporto ora fare le cose come:

"rewrites": [ { 
    "source": "**", 
    "destination": "/index.html" 
}] 

Ma trovare questo in realtà solo risolvendo metà della battaglia che il volto di SPA.

+0

Grazie Dan! Una nota a margine, sembra un feedback più appropriato per [email protected] o per la mailing list. C'è una domanda specifica qui che dovrebbe essere affrontata usando il formato Q & A di SO? – Kato

+0

@Kato Sì, è possibile implementare le regole proxy visualizzate nei modelli di esempio che ho collegato utilizzando il motore delle regole di riscrittura? Ho aggiornato la domanda per essere più chiara. –

+0

Purtroppo questo è un po 'fuori dalla portata delle attuali regole di riscrittura. Farò cadere uno dei nostri guru di hosting e verificherò. – Kato

risposta

12

Firebase nucleo sviluppatore qui

Firebase annunciato il supporto SEO di base che lo fa funzionare con Googlebot a ng-conf 2015 a marzo. Vedere this presentation intorno al contrassegno 16:30 per l'annuncio.

Firebase punta ancora a lavorare con strumenti di pre-rendering come prerender.io e Brombone ad un certo punto, per consentire anche opzioni più sofisticate per la SEO. Ma questo dovrebbe "funzionare" solo se si aggiorna all'ultima versione del client Firebase (2.2.4 al momento di questo post).

+7

** Auguri di Natale ** - sperando in un supporto completo (motori di ricerca non Google, tag OpenGraph di Facebook, schede Twitter, ecc.) E non solo il motore di ricerca di Google. – JisuKim82

+0

Ciao @jacobawenger c'è qualche aggiornamento su questo? una SPA ospitata da firbase non funziona bene con strumenti di condivisione come slack o fb. Ci sono strumenti o plugin che possiamo aggiungere? –

+0

Controlla https://firebase.googleblog.com/2017/06/serving-dynamic-content-with-cloud.html. – jwngr