2016-12-21 2 views
0

Ich habe eine Rails-App, die jQuery nicht laden kann, wenn in einigen eingebetteten JS in einer meiner Ansichten aufgerufen. Ich habe umsah und einige gemeinsame Lösungen gesehen, also werde ich Liste, was ich bereits getan:

jQuery ist unkommentiert aufgelistet in meinem Gemfile:

gem 'jquery-rails' 

jQuery ist in application.js geladen:

//= require jquery 
//= require jquery_ujs 
//= require turbolinks 
//= require_tree . 

application.html.erb ruft mit dem Tag gehören:

<%= javascript_include_tag 'application', 'data-turbolinks-track'=> true %> 

ich habe auch t ried:

<%= javascript_include_tag 'application' %> 

Wo könnte das schief gehen?

EDIT:

konnte ich es zum Laufen bringen, aber es ist eine bestimmte Problemumgehung und ich möchte eine dauerhaftere Lösung, um herauszufinden. Zuerst fand ich heraus, dass ein Kollege diesen Server etwas anders eingerichtet hatte und application.html.erb wurde von einem anderen Layout überschrieben, das die javascript_include_tag-Zeile im Kopf (oder anderswo in der Datei) nicht enthielt. Trotz des Hinzufügens dieser Codezeile blieb der Fehler bestehen. Ich sparte jquery.min.js aus dem Online-API Link (https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js) und im Vermögen Ordner abgelegt, dann vorkompilierte und fügte hinzu, die folgende Zeile in den Kopf des Layouts:

<%= javascript_include_tag 'jquery.min', 'data-turbolinks-track'=> true %> 

Diese schließlich in der Ajax-Folge Rufen Sie innerhalb meines jQuery-Skripts erfolgreich ein Skript auf. Es gibt jedoch noch zwei Probleme: Erstens möchte ich, wie ich oben sagte, eine dauerhaftere und weniger hackische Lösung, und zweitens funktioniert die Erfolgsfunktion des Ajax-Aufrufs nicht, obwohl sie auf meinem privaten Testserver korrekt funktioniert . Der Code ist der gleiche zwischen den beiden, also weiß ich, dass es kein Problem im Code ist, und ich bin fast sicher, dass es mit dem zugrunde liegenden Problem verbunden ist, das mit jQuery im Allgemeinen zu tun hat.

+0

Haben Sie den Server nach der Bundle-Installation neu gestartet? – sa77

+0

Ja, habe ich. Mehrere Male –

+0

Wenn Sie diese Seitenquelle überprüfen, sehen Sie, wie jquery in ein Skript-Tag geladen wird? –

Antwort

1

Versuchen Zusatz: <% = javascript_include_tag 'Anwendung', 'jquery', ‚Daten -turbolinks-track '=> true %>

sehen, ob die jquery-Datei auf Ihrer Seite geladen wird.

Auch die Abhilfe Sie haben mit allen Mitteln nicht Hacky oder schlecht ist, tatsächlich für mich, den ich lieber gulp kümmern sich um alle meine Vermögenswerte lassen, die Art und Weise Rubin kümmert sich um Ihr Vermögen ist ziemlich langsam und klobig, vor allem, wenn Sie versuchen, etwas wie eckig mit ui Router zu integrieren, die gleichen Vermögenswerte, die ich kompilieren und auf Schluck mangels dauert etwa 10 s, auf Ruby dauert mehr als 1 Minute.

Eine letzte Sache haben Sie von bower gehört? Es ist ein großartiger Paketmanager, es ist ziemlich einfach, Abhängigkeiten zu Ihrer Anwendung hinzuzufügen.

0

javascript Ausgabe Datei laden unter Code verwenden, ich glaube, Sie

<%= javascript_include_tag "application", data-turbolinks-track'=> true %> 

half Zurückschalten auf

<%= javascript_include_tag "application" %> 
+0

Ich habe Probleme zu verstehen, was Sie zu kommunizieren versuchen, können Sie Ihren Kommentar zur Klärung und/oder zum Korrekturlesen bearbeiten? –

Verwandte Themen