2014-04-21 3 views
17

Ich möchte einen neuen Ordner in app/assets, in diesem Ordner erstellen ich eine Datei haben, jede Datei CSS-Ordner und Javascript-Verzeichnis, wie die unten angegebenen Adressen:Fügen Sie einen neuen Ordner auf Asset-Pfad in Schienen 4

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

ich Code unten verwenden css Datei zu definieren, aber nicht wahr und Schienen nicht finden können und Last 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 %> 

Wie kann ich deklarieren Sie css und javascript von plugin Ordner?

Hinweis: Wenn ich die css Datei im Browser durch diese Adresse angezeigt werden soll:

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

ich unten Fehlermeldung erhalten: No route matches [GET] "/assets/plugins/bootstrap/css/bootstrap.min.css"

Aber für CSS-Datei, die es gibt in assets/stylesheets/ kann ich CSS sehen Datei im Browser durch Eingabe der Adresse wie oben. Warum die verschiedenen Beetwin stylesheets und plugins Verzeichnis?

+0

Normalerweise, wenn alle Vermögenswerte, die nur in Browser über die Adresse http 'betrachtet werden können, um Asset-Pfade hinzugefügt werden: // localhost: 3000/assets/bootstrap.min.css' und nicht über 'http: // localhost: 3000/assets/plugins/bootstrap/css/bootstrap.min.css'. Warum willst du so ein Verhalten? –

Antwort

22

In application.rb, fügen Sie die folgenden Zeilen:

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") 

Dann werden Sie in der Lage sein bootstrap.min.css und bootstrap.min.js in Ihrem Browser zugreifen,

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

Das bedeutet, dass Sie die oben genannten zu den Asset-Pfaden hinzugefügt haben.

Jetzt können Sie es mit stylesheet_link_tag oder javascript_include_tag anrufen.

Hoffe, es hilft :)

+0

Ja, ich versuche es und arbeite. Ich habe viele Verzeichnisse in 'plugins'. Für jeden muss ich einen Ausdruck in 'application.rb' hinzufügen? !! Kennen Sie einen einfachen Weg, um alle Verzeichnisse in 'application.rb' hinzuzufügen? – mgh

+1

Wenn Sie Plugins separat und unter verschiedenen Ordnern verwalten möchten, müssen Sie sie separat hinzufügen. Ansonsten pflegen Sie alle Plugin-JS-Dateien unter 'app/assets/plugins/bootstrap/js' und CSS-Dateien unter' app/assets/plugins/bootstrap/css'. Das wäre gut zu gehen. –

+0

Es hat für mich im Entwicklungsmodus funktioniert. Es funktioniert nicht, wenn ich auf dem Server bereitstellen. Bitte werfen Sie einen Blick auf diese Frage: http://stackoverflow.com/questions/34466781/rails-rails-root-join-misbehaving-after-deployment – Aleksandrus

Verwandte Themen