2014-07-14 12 views
5

Próbowałem uzyskać bardzo minimalną stronę WWW za pomocą Polymer do renderowania w przeglądarce - używam konfiguracji Node/ExpressJS/Jade po stronie serwera. Mój kod jest tak blisko, jak w przypadku przykładów dostarczanych z dokumentacją Polymer, myślę, że brakuje mi czegoś naprawdę prostego. Używam Chrome M35.Minimalny działający przykład polimeru

na serwerze, mam zainstalowane wszystkie rzeczy polimer (platforma, rdzenia i papieru), używając altanę, a ja odwzorowane bower_components być podawane statycznie pod /static

app.use('/static', express.static(path.join(process.cwd(), 'bower_components'))) 

I zostały zweryfikowane, że mój serwer może poprawnie obsługiwać zasoby, takie jak http://localhost:3000/static/paper-button/paper-button.html - to zwraca zawartość żądanego pliku.

HTML obsługiwane przez strony jest jako takie:

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <script src="/static/platform/platform.js"></script> 
    <title>Authenticate</title> 
    <link rel="import" src="/static/paper-button/paper-button.html"> 
    <style> 
     body { 
     font-family: 'Helvetica Neue'; 
     margin: 0; 
     padding: 24px; 
     user-select: none; 
     transform: translateZ(0); 
     } 

     paper-button { 
     margin: 1em; 
     width: 10em; 
     } 

     paper-button.colored { 
     color: #4285f4; 
     fill: #4285f4; 
     } 

    </style> 
    </head> 
    <body> 
    <paper-button label="Authenticate" class="colored"></paper-button> 
    </body> 
</html> 

To jest tak blisko, jak to robi się na przykład w tym samym widget co zostało udokumentowane na Polymer website. W moim przypadku nic nie renderuje. Naprawdę dziwne jest to, co jest pokazane w zakładce Network inspektora:

Polymer Web Inspector

Jest Loader.js skrypt, który wierzę zostanie zainstalowany przez platform.js, który wysyła XHR dla strony korzenia samej (the Trzecia linia). W każdym innym przykładzie widzę, że skrypt ładujący zaczyna ładować zaimportowane składniki internetowe. Po prostu nie mogę zrozumieć, dlaczego to robi w moim przypadku. Inną dziwną rzeczą jest połączenie pochodzące z Parser.js - żądany URL danych to data:text/javascript;base64,Ci8vIyBzb3VyY2VVUkw9bnVsbC9bMTQ1M10uanMK, co oznacza: //# sourceURL=null/[1453].js - znowu niezbyt dobry znak.

Próbowałem użyć względne src s w moich linków - na próżno. Zasadniczo utknąłem na bardzo wczesnym etapie i naprawdę będę wdzięczny za wskazanie we właściwym kierunku.

Odpowiedz

6

To nie jest w porządku:

<link rel="import" src="/static/paper-button/paper-button.html"> 

Powinno być:

<link rel="import" href="/static/paper-button/paper-button.html"> 

Side uwaga: Możesz również użyć favicon wyraźnej middleware, aby zapobiec "podejrzane" żądania HTTP. (Jeśli nie masz favikona w publicznym katalogu głównym, zobaczysz dodatkowe żądanie http obsługiwane przez express, oprogramowanie pośredniczące będzie obsługiwać favicon express, jeśli nie masz go w publicznym katalogu głównym.)

+0

Yeesh! To było łatwe. Dzięki. –

Powiązane problemy