Keine Route entspricht „/javascripts/prototype.js“ -> explizit ein definieren?
-
06-07-2019 - |
Frage
Wenn ich die index
Aktion meines assets
Controller nennen, verwendet die entsprechende index
Vorlage das assets
Layout, die diese Zeile enthält:
<%= javascript_include_tag 'prototype' %>
Der Fehler ich erhalte, ist:
No route matches "/javascripts/prototype.js" with {:method=>:get}
Das ist meine Routen-Datei:
ActionController::Routing::Routes.draw do |map|
map.resources :assets
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
end
Jede Idee, was ich könnte hier fehlt?
Gibt es eine Möglichkeit zu explicity eine Route für diese Datei definieren?
Lösung
Sie sollten nicht einen Weg für diese definieren müssen - es sollte durch die Rewrite-Regeln in der .htaccess-Datei behandelt werden
.Sie müssen prüfen, ob Ihr mod_rewrite aktiviert ist, und dass die .htaccess-Datei korrekt ist - es sollte die Anforderung an Ihre dispatch.rb nur dann senden, wenn die angeforderte Datei nicht in Ihrem öffentlichen Verzeichnis vorhanden ist. Sie können auch überprüfen müssen, dass die Datei vorhanden ist.
Andere Tipps
Sie brauchen keine Route für diese Datei zu definieren, müssen Sie diese Datei. Wir bieten Ihnen ein neues Projekt erstellen, Rails speichert Prototype-Bibliothek in Ihrem javascripts Ordner.
create public/javascripts/prototype.js
create public/javascripts/effects.js
create public/javascripts/dragdrop.js
create public/javascripts/controls.js
create public/javascripts/application.js
Stellen Sie sicher, dass die Datei vorhanden ist. Wenn nicht, ein neues Projekt erstellen und kopieren Sie die Dateien von seinem / public / Javascript-Verzeichnis.
Dies könnte auch passieren, wenn Sie einen Controller namens javascripts haben.
Versuchen Sie es mit:
<%= javascript_include_tag :defaults %>