Хмм ... похоже, ваш пример основан на этой документации Синатры . Но по какой-то причине Sinatra пытается использовать файл .js
в качестве HTML и соответственно обрабатывает его. Вы случайно не устанавливаете content_type
где-либо еще в своем приложении? Попробуйте изменить код на
get "/test.js" do
content_type "text/javascript"
coffee :hello
end
Вы также можете попробовать совершенно другой подход, используя Rack :: Coffee или Barista , чтобы автоматически компилировать ваш CoffeeScript в JavaScript на уровне стойки. В любом случае это может быть проще, если у вас есть большое количество файлов CoffeeScript.
Редактировать: После публикации вышесказанного, меня поразило, что я, вероятно, просто неверно истолковал вашу разметку. Это то, что вы видите, когда загружаете страницу test.js
в браузере просто
alert('hello world!');
? Если так, все работает нормально. JavaScript будет запускаться в вашем браузере только тогда, когда он находится на странице HTML между тегами <script>
или ссылками через <script src="test.js"></script>
. Поэтому в дополнение к существующему коду добавьте
get "/alert", :provides => 'html' do
'<script type=src="test.js"></script>'
end
, затем откройте этот alert
адрес в вашем браузере, и скрипт должен запуститься.