Ошибка Ruby-on-Rails с CoffeeScript? - PullRequest
2 голосов
/ 22 июня 2011

Кто-нибудь знает, почему RoR неправильно обслуживает CoffeeScript?

в моем представлении приложения:

<%= javascript_include_tag :defaults %>

в браузере, это выглядит как:

<script src="/assets/defaults.js" type="text/javascript"></script>

Но когда я нажимаю на эту ссылку, defaults.js не найден.

<code><!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8" />
  <title>Action Controller: Exception caught</title>
  <style>
    body { background-color: #fff; color: #333; }

    body, p, ol, ul, td {
      font-family: helvetica, verdana, arial, sans-serif;
      font-size:   13px;
      line-height: 18px;
    }

    pre {
      background-color: #eee;
      padding: 10px;
      font-size: 11px;
    }

    a { color: #000; }
    a:visited { color: #666; }
    a:hover { color: #fff; background-color:#000; }
  </style>
</head>
<body>

<h1>Routing Error</h1>
<p><pre>No route matches [GET] &quot;/assets/defaults.js&quot;

1 Ответ

10 голосов
/ 22 июня 2011

В Rails 3.0 этот аргумент :defaults фактически был так называемым расширением JavaScript , настроенным Rails для расширения для включения файлов прототипов в public / javascripts .

В Rails 3.1 больше нет этих расширений JavaScript, а есть файлы манифеста . Поэтому вам не следует использовать для этого javascript_include_tag :defaults, а скорее javascript_include_tag :application, который является файлом манифеста JavaScript по умолчанию для вашего приложения.

В приложении по умолчанию на Rails 3.1 есть файл app/assets/javascripts/application.js, который содержит директивы для Sprockets, для которых требуются файлы. Я начал работу над руководством по конвейеру активов для Rails, которое объясняет, как работают эти файлы и что означают директивы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...