我不能为我的生活找出如何让Sprockets指出哪个文件导致编译错误。我只是得到如下错误:
的CoffeeScript
在14671ms完成500内部服务器错误(ActiveRecord:281.4ms)
ExecJS :: RuntimeError - SyntaxError:[stdin]:1:5:意外,:
execjs(2.6.0)lib / execjs / external_runtime.rb:84:在`extract_result'中 < backtrace continue>
可以通过将以下内容添加到包含的.coffee文件的无效语法来触发:
test,
萨斯
在14671ms完成500内部服务器错误(ActiveRecord:281.4ms)
Sass :: SyntaxError - “0”后的CSS无效:预期表达式(例如1px,粗体)为“;”:
sass(3.4.20)lib / sass / scss / parser.rb:1179:在'预期'中 < backtrace continue>
可以通过将分号添加到.sass文件来触发:
.test
top: 0;
如果出现警告,服务器日志会显示有用的内容,例如
/path/to/file.sass第9行的警告: 此选择器没有任何属性,也不会呈现。
但是,语法错误似乎只会导致500错误,并告诉我该行&错误的列,但不是它所在的文件。我已经通过回溯挖掘它们并没有给出发生错误的文件的任何指示。如何获取输出以显示发生SyntaxError的文件?
版本(撰写本文时的最新内容):
答案 0 :(得分:1)
继续阅读服务器中的500错误。它应该显示导致错误的文件和文件行。以下示例显示 app / assets / stylesheets / test.sass:2
Completed 500 Internal Server Error in 152ms (ActiveRecord: 0.0ms)
ActionView::Template::Error (Invalid CSS after "0": expected expression (e.g. 1px, bold), was ";"):
2: <html>
3: <head>
4: <title>StackoverflowQuestions</title>
5: <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
6: <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
7: <%= csrf_meta_tags %>
8: </head>
app/assets/stylesheets/test.sass:2
app/views/layouts/application.html.erb:5:in `_app_views_layouts_application_html_erb__1109435584510058936_70275420820360'
答案 1 :(得分:1)
一种解决方法是在rails之外自己编译.coffee
文件以获得正确的错误消息。见https://stackoverflow.com/a/41700235/1836506