2009-06-22 8 views
1

Quand j'appelle l'action index de mon contrôleur assets, le modèle index correspondant utilise la mise en page assets qui comprend cette ligne:Aucune route ne correspond "/javascripts/prototype.js" -> en définir une explicitement?

<%= javascript_include_tag 'prototype' %> 

L'erreur que je reçois est:

No route matches "/javascripts/prototype.js" with {:method=>:get} 

Ceci est mon parcours fichier:

ActionController::Routing::Routes.draw do |map| 
    map.resources :assets 
    map.connect ':controller/:action/:id' 
    map.connect ':controller/:action/:id.:format' 
end 

Une idée de ce que je pourrais être manquer ici?

Existe-t-il un moyen de définir explicitement une route pour ce fichier?

Répondre

0

Vous ne devriez pas avoir besoin de définir un itinéraire pour cela - il devrait être géré par les règles de réécriture dans votre fichier .htaccess.

Vous devez vérifier que votre mod_rewrite est activé et que le fichier .htaccess est correct. Il doit envoyer la demande à votre dispatch.rb uniquement si le fichier demandé n'existe pas dans votre répertoire public. Vous devrez peut-être également vérifier que le fichier existe.

+0

Oui, le fichier existe donc je pense que votre explication technique est plus le long des lignes de ce qui se passe . Merci pour cette info. Je vais aller fouiner un peu. – pepe

+0

Il est hautement improbable que mod_rewrite soit impliqué, il s'agit d'une application Rails. Presque toutes les configurations de Rails ignorent complètement ce genre de choses. –

+0

@Jim Puls: Oui, c'est vrai, et pour ce faire, ils utilisent mod_rewrite. – Codebeef

0

Vous n'avez pas besoin de définir un itinéraire pour ce fichier, vous avez besoin de ce fichier. Nous vous créons un nouveau projet, Rails stocke la bibliothèque Prototype dans votre dossier 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 

Assurez-vous que le fichier existe. Sinon, créez un nouveau projet et copiez les fichiers à partir de son dossier/public/javascript.

+0

Il existe définitivement. – pepe

0

Cela peut également se produire si vous avez un contrôleur appelé javascripts.

0

Essayez d'utiliser

Je viens de voir cela sur une autre liste - mais il ne m'a pas aidé