【问题标题】:Eco Error Message: Unexpected 'INDENT' in WindowsEco 错误消息:Windows 中出现意外的“INDENT”
【发布时间】:2012-04-18 22:29:49
【问题描述】:

我目前在rails 项目中使用spinejs 和eco 模板系统。它在我的 Mac 上完美运行,但是当我在 Windows 上部署它时出现奇怪的缩进错误。代码是:

<div class="contacts">
    <% for contact_record in @unchecked_contact_records : %>
        <%= contact_record %><br>
    <% end %>
</div>

错误信息是:

ExecJS::ProgramError in Admin#dashboard

Showing C:/Users/rayshih.mama-PC/workspace/showwin_ror_1_5/app/views/layouts/application.html.erb where line #6 raised:

Error: Parse error on line 2: Unexpected 'INDENT'
  (in C:/Users/rayshih.mama-PC/workspace/showwin_ror_1_5/app/assets/javascripts/admin/views/dashboard/contacts.jst.eco)

Extracted source (around line #6):

3: <head>
4:   <title>Show Win Printing Service</title>
5:   <%= stylesheet_link_tag    "application" %>
6:   <%= javascript_include_tag "application" %>
7:   <%= csrf_meta_tags %>
8: </head>
9: <body>

我认为这只是块语句的问题,但是通过这个实验:

<div class="contacts">
    <% if true: %>
        <%= "hello world" %><br>
    <% end %>
</div>

在这个实验中,没有错误。所以这不是块语句错误。似乎它只发生在 for 循环语句中,但为什么呢?

【问题讨论】:

  • 可能是终端问题吗?您在 Windows 上的文件有 CR-LF 行结尾还是只有 LF?
  • 目前只是LF,但以上两种情况都是LF。一个可以,一个不行:(
  • 我也试过 CR-LFs 行尾,还是不行:(
  • 那么这实际上是一个与 Ruby 或 Rails 无关的 JavaScript 问题?
  • Rails 会调用 ExecJS 运行 ECO 系统编译模板,这个过程是在服务器端完成的。我猜问题是在生态系统将模板编译为coffeescript后,它会保存到一个临时文件,然后再次读取它以编译为javascript。

标签: javascript ruby-on-rails windows spine.js eco


【解决方案1】:

这是一个已知问题:https://github.com/sstephenson/eco/issues/29

我按照其中一位评论者的说明安装了节点:http://nodejs.org/ 节点会自动添加到您的路径中,因此一旦您通过在命令提示符下键入“node”检查节点是否在路径中,重新启动您的 Rails 服务器,它应该会被修复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-21
    • 2023-03-23
    • 2013-12-29
    • 1970-01-01
    • 1970-01-01
    • 2023-01-20
    相关资源
    最近更新 更多