Nessun percorso corrisponde a "/javascripts/prototype.js" - > definirne esplicitamente uno?

StackOverflow https://stackoverflow.com/questions/1026080

  •  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?

È stato utile?

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  %>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top