2014-04-21 13 views
17

Chcę utworzyć nowy folder w app/assets w tym folderze mam jakiś plik, każdy plik ma folderu CSS i JavaScript folderu, jak niżej podanymi adresami:Dodaj nowy folder do ścieżki aktywów w szynach 4

app/assets/plugins/bootstrap/css/bootstrap.min.css app/assets/plugins/bootstrap/js/bootstrap.min.js

używam poniżej kodu do zdefiniowania css plik, ale nie jest prawdą i szyny nie może znaleźć i obciążenie bootstrap.min.css:

<%= stylesheet_link_tag "bootstrap.min", media: "all", "data-turbolinks-track" => true %> 

<%= stylesheet_link_tag "../plugins/bootstrap/css/bootstrap.min", media: "all", "data-turbolinks-track" => true %> 

jak mogę zadeklarować css i javascript z folderu plugin?

Uwaga: Gdy chcę zobaczyć plik w przeglądarce css przez ten adres:

http://localhost:3000/assets/plugins/bootstrap/css/bootstrap.min.css 

otrzymuję poniżej błędu: No route matches [GET] "/assets/plugins/bootstrap/css/bootstrap.min.css"

Ale dla pliku css, które istnieją w assets/stylesheets/ widzę css plik w przeglądarce, wpisz adres jak na górze. Dlaczego różne katalogi beetwin stylesheets i plugins?

+0

Zwykle, gdy wszystkie aktywa, które są dodawane do ścieżki aktywów mogą być oglądane tylko przez przeglądarkę adres 'http: // localhost: 3000/assets/bootstrap.min.css' i nie przez 'http: // localhost: 3000/assets/plugins/bootstrap/css/bootstrap.min.css'. Dlaczego chcesz takie zachowanie? –

Odpowiedz

22

W application.rb, dodaj poniższe linie:

config.assets.enabled = true 
config.assets.paths << Rails.root.join("app", "assets", "plugins", "bootstrap","css") 
config.assets.paths << Rails.root.join("app", "assets", "plugins", "bootstrap","js") 

Wtedy będzie można uzyskać dostęp do bootstrap.min.css i bootstrap.min.js w przeglądarce

tj http://localhost:3000/assets/bootstrap.min.css/http://localhost:3000/assets/bootstrap.min.js

Oznacza to, że dodano powyższe do ścieżek aktywów.

Teraz możesz zadzwonić pod numer stylesheet_link_tag lub javascript_include_tag.

Nadzieja to pomaga :)

+0

Tak, próbuję i pracuję. Mam wiele katalogów w 'wtyczkach'. Dla każdego muszę dodać wyrażenie w 'application.rb'? !! Czy znasz prosty sposób dodania całego katalogu w pliku 'application.rb'? – mgh

+1

Jeśli chcesz zachować wtyczki oddzielnie i pod różnymi folderami, musisz dodać je osobno. W przeciwnym razie zachowaj wszystkie pliki JS wtyczki w plikach 'app/assets/plugins/bootstrap/js' i CSS w katalogu' app/assets/plugins/bootstrap/css'. Więc byłoby dobrze iść. –

+0

To działało dla mnie w trybie programowania. Nie działa po wdrożeniu na serwerze. Proszę spojrzeć na to pytanie: http://stackoverflow.com/questions/34466781/rails-rails-root-join-misbehaving-after-deployment – Aleksandrus