Jestem bardzo nowy dla węzła i heroku i podejrzewam, że jest to rodzaj prostego pozwolenia problem itp., ale nie mogę tego wyśledzić.Heroku (Cedar) + Node + Express + Jade Pliki javascript po stronie klienta w podkatalogu działają lokalnie z brygadzistą + zwijaniem, ale nie wtedy, gdy są wypychane do Heroku
Mam kilka czystych plików javascript w podkatalogu jeden poziom pod moim katalogiem głównym, w którym znajduje się mój plik web.js. Mam linia w moich web.js plik, aby określić katalog
app.use('/heatcanvas',express.static(__dirname+'/heatcanvas'));
Jeśli uruchomię moją aplikację lokalnie z Heroku Foreman uzyskać oczekiwaną odpowiedź js kiedy uruchomić następujące polecenie Curl
curl localhost:5000/heatcanvas/heatcanvas.js
jednak kiedy wciskam do Heroku i uderzył corresponsing żywo URL w przeglądarce
www.example.com/heatcanvas/heatcanvas.js
otrzymuję następujący:
Cannot GET /heatcanvas/heatcanvas.js
Jeśli sprawdzam dzienniki Firebug i/lub Heroku, widzę, że otrzymuję błędy 404 dla tych plików, mimo że ścieżka powinna pasować do tego, co jest robione lokalnie. Warto również wspomnieć, że javascript trzeciej strony przychodzi dobrze, tylko wtedy, gdy atrybut src znacznika script wskazuje na moją stronę, pojawia się problem. Co muszę zrobić, aby moje skrypty były dostępne?
Nigdy nie sprawdzałem szczegółów, ale wiem, że w Railsach na Heroku umieszczasz/kompilujesz swoje zasoby statyczne w katalogu głównym/publicznym. Na przykład Railsy kompilują '/ assets/base.sass' do'/public/stylesheets/base.css'. Myślę więc, że Heroku ujawnia "publiczny" katalog jako statyczny dostępny reż. Z reguły nie można uzyskać dostępu do dowolnych plików na serwerach produkcyjnych, tak jak w zwykłych aplikacjach PHP. Musisz podać trasę GET, która faktycznie obsługuje plik heatcanvas.js - ale nie chcesz tego robić. Jestem naprawdę zardzewiała, ale może spróbuję wykorzystać "publiczny" reż. – danneu
Na stosie [Cedar] (https://devcenter.heroku.com/articles/cedar) żądania są kierowane do dyno bez zakłóceń. Od aplikacji/frameworku zależy więc na udostępnianiu zasobów statycznych. Jedyną specjalnością katalogu "public" jest to, że aplikacja/struktura Railsowa obsługuje stamtąd zasoby. Aplikacje Node.js będą miały inną strukturę. –
Czy możesz dołączyć wynik "logi heroku-t" podczas jednego z tych żądań? –