Nessun percorso corrisponde a "/javascripts/prototype.js" - > definirne esplicitamente uno?
-
06-07-2019 - |
Domanda
Quando chiamo l'azione indice
del mio controller asset
, il modello index
corrispondente utilizza il layout assets
che include questa riga:
<%= javascript_include_tag 'prototype' %>
L'errore che ottengo è:
No route matches "/javascripts/prototype.js" with {:method=>:get}
Questo è il mio file di percorsi:
ActionController::Routing::Routes.draw do |map|
map.resources :assets
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
end
Hai idea di cosa potrei perdere qui?
Esiste un modo per definire esplicitamente una route per questo file?
Soluzione
Non dovresti definire una route per questo - dovrebbe essere gestita dalle regole di riscrittura nel tuo file .htaccess.
Devi verificare che mod_rewrite sia abilitato e che il file .htaccess sia corretto - dovrebbe inviare la richiesta a dispatch.rb solo se il file richiesto non esiste nella tua directory pubblica. Potrebbe anche essere necessario verificare che il file esista.
Altri suggerimenti
Non è necessario definire una route per questo file, è necessario questo file. Creiamo un nuovo progetto, Rails archivia la libreria Prototype nella cartella javascripts.
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
Assicurati che il file esista. In caso contrario, crea un nuovo progetto e copia i file dalla sua cartella / public / javascript.
Questo potrebbe accadere anche se hai un controller chiamato javascripts.
Prova a usare:
<%= javascript_include_tag :defaults %>