No hay coincidencias de ruta & # 8220; /javascripts/prototype.js” - > define explícitamente uno?
-
06-07-2019 - |
Pregunta
Cuando llamo a la acción index
de mi controlador assets
, la plantilla correspondiente index
utiliza el diseño assets
que incluye esta línea:
<%= javascript_include_tag 'prototype' %>
El error que obtengo es:
No route matches "/javascripts/prototype.js" with {:method=>:get}
Este es mi archivo de rutas:
ActionController::Routing::Routes.draw do |map|
map.resources :assets
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
end
¿Alguna idea de lo que podría estar perdiendo aquí?
¿Hay alguna forma de definir explícitamente una ruta para este archivo?
Solución
No debería necesitar definir una ruta para esto; debe ser manejado por las reglas de reescritura en su archivo .htaccess.
Debe verificar que su mod_rewrite esté habilitado y que el archivo .htaccess sea correcto: debe enviar la solicitud a su dispatch.rb solo si el archivo solicitado no existe en su directorio público. Es posible que también deba verificar que el archivo existe.
Otros consejos
No necesita definir una ruta para este archivo, necesita este archivo. Si crea un nuevo proyecto, Rails almacena la biblioteca Prototype en su carpeta 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
Asegúrese de que el archivo existe. De lo contrario, cree un nuevo proyecto y copie los archivos de su carpeta / public / javascript.
Esto también puede suceder si tiene un controlador llamado javascripts.
Intenta usar:
<%= javascript_include_tag :defaults %>