Ich versuche, mit Sinatra zu arbeiten. Ich bin neu in beiden Technologien, also ist das wahrscheinlich etwas albern. Mein Problem scheint zu sein, dass das coffeescript zu Javascript kompiliert, aber nicht auf der Seite ausgeführt wird, stattdessen erscheint es als HTML.
%Vor% Hmm ... Ihr Beispiel basiert auf dieser Sinatra-Dokumentation . Aus irgendeinem Grund versucht Sinatra, die Datei .js
als HTML bereitzustellen und führt sie entsprechend vor. Setzen Sie zufällig content_type
an anderer Stelle in Ihrer Anwendung? Versuchen Sie, Ihren Code in
Sie können auch einen völlig anderen Ansatz ausprobieren, indem Sie entweder Rack :: Coffee oder Barista , um Ihr CoffeeScript automatisch auf Rack-Ebene in JavaScript zu kompilieren. Das könnte einfacher sein, wenn Sie sowieso eine große Anzahl von CoffeeScript-Dateien haben.
Bearbeiten: Nachdem ich das oben genannte gepostet habe, ist mir aufgefallen, dass ich Ihr Markup wahrscheinlich falsch interpretiere. Ist das, was Sie sehen, wenn Sie die Seite test.js
in Ihrem Browser laden nur
? Wenn ja, funktioniert alles gut. JavaScript wird nur in Ihrem Browser ausgeführt, wenn es sich in einer HTML-Seite zwischen <script>
-Tags befindet oder über <script src="test.js"></script>
referenziert wird. Fügen Sie also zusätzlich zu Ihrem vorhandenen Code
Öffnen Sie dann die alert
-Adresse in Ihrem Browser und das Skript sollte ausgeführt werden.
Von sinatra-coffee-script-template Ich habe nur nach dem gleichen Setup gesucht.
%Vor%dann in application.coffee
%Vor%index.erb
%Vor%layout.erb
%Vor% Normalerweise richte ich bei der Entwicklung von coffee -wc dirname/
nur einen Beobachter in meinen CoffeeScript-Dateien ein und stelle die kompilierten JS-Dateien dann zur Produktion bereit. Es ist nicht ideal, aber es ist in mancher Hinsicht weniger kompliziert und entfernt die Abhängigkeit von Node.JS von meinem Produktionsserver (in meinem Fall Heroku).
Tags und Links coffeescript sinatra