2013-08-30 8 views
6

Um próbuje załadować plik javascript w następujący sposób do mojego pliku html.erbjak załadować plik JavaScript, żeby szyny HTML ERB

<script src="/public/javascripts/test.js" type="text/javascript" /> 

jego dostępne w folderze publicznym i jego w katalogu

root/public/javascript

ale to daje mi błąd mówiąc

"NetworkError: 404 Not Found - http://0.0.0.0:3000/public/javascripts/test.js" 

co mogłoby być może źle? czy istnieje inny sposób dołączania pliku javascipt do szyn?

Odpowiedz

18

Jeśli plik JavaScript jest w którymś z folderów aktywów (aktywa, sprzedawca, wiązka) dla Rails 3.x) można dodać skrypt do pliku html.erb dodając następujący:

<%= javascript_include_tag('test.js') %> 
+3

tutaj() jest opcjonalne. Możesz również określić <% = javascript_include_tag 'test.js'%>. Jeśli chcesz dołączyć wiele plików js, użyj takich jak <% = javascript_include_tag 'test.js', 'test1.js', 'test2.js'%> – Inaccessible

2

Railsy domyślnie używają potoku zasobów, więc niestandardowe pliki js muszą przejść do katalogu app/assets/javascript. Niż nawet nie trzeba ładować pliku do widoku.

ale co do twojego pytania.

Służyć pliki z katalogu publicznego, trzeba będzie włączyć config ustawienia

config.serve_static_assets = true 

Byłbyś powszechnie umieścić to w jednym z was plików konfiguracyjnych środowiska.

+1

Zauważ, że użycie potoku zasobów oznacza, że ​​nie możesz przekazać zmiennych ruby ​​do javascript ze swojego kontrolera, ponieważ js został skompilowany wstępnie, gdy zmienne te nie zostały jeszcze zdefiniowane. – JosephK

1

do plików serwerowych z katalogu publicznego zrobić nad ustawieniem i uderzył

config.serve_static_assets = true 
<script src="/javascripts/test.js" type="text/javascript" /> 
1

Nie użytku publicznego. Publiczny jest domyślnym katalogiem głównym serwera.

Serwer będzie szukał publicznego pliku, a następnie spróbuje przekierować go przez router, jeśli nie znajdzie dopasowania.

Możesz również rozważyć użycie helpera javascript_include_tag, jeśli używasz potoku zasobów.

Powiązane problemy