2009-06-22 7 views
1

Als ich die index Aktion meines assets Controller nennen, verwendet der entsprechende index Vorlage des assets Layout, die diese Zeile enthält:Keine Route passt "/javascripts/prototype.js" -> explizit definieren?

<%= javascript_include_tag 'prototype' %> 

Der Fehler I erhalten:

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

Dies ist meine Routen file:

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

Irgendeine Idee, die ich Fräulein sein könnte hier drin?

Gibt es eine Möglichkeit, eine Route für diese Datei explizit zu definieren?

Antwort

0

Sie sollten dafür keine Route definieren müssen - sie sollte von den Umschreibungsregeln in Ihrer .htaccess-Datei behandelt werden.

Sie müssen überprüfen, ob Ihre mod_rewrite aktiviert ist und dass die .htaccess-Datei korrekt ist - sie sollte die Anfrage nur dann an Ihre dispatch.rb senden, wenn die angeforderte Datei in Ihrem öffentlichen Verzeichnis nicht existiert. Möglicherweise müssen Sie auch überprüfen, dass die Datei vorhanden ist.

+0

Ja, existiert die Datei so denke ich, Ihre technische Erklärung mehr entlang der Linien ist, was los ist . Danke für diese Information. Ich werde gehen und ein wenig herumstochern. – pepe

+0

Es ist sehr unwahrscheinlich, dass mod_rewrite beteiligt ist, das ist eine Rails App. Fast alle Rails-Setups umgehen alle diese Dinge komplett. –

+0

@ Jim Puls: Ja, das ist richtig, und dazu benutzen sie mod_rewrite. – Codebeef

0

Sie müssen für diese Datei keine Route definieren, Sie benötigen diese Datei. Wenn Sie ein neues Projekt erstellen, speichert Rails die Prototyp-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, erstellen Sie ein neues Projekt und kopieren Sie die Dateien aus dem Ordner/public/javascript.

+0

Es existiert definitiv. – pepe

0

Dies kann auch passieren, wenn Sie einen Controller namens Javascripts haben.

0

Versuchen Sie es mit

Ich sah nur diese auf eine andere Liste - aber es half mir nicht

Verwandte Themen