繁体   English   中英

当我尝试部署Rails应用程序时,这里出现什么问题?

[英]What is the issue here when I try to deploy my rails app?

这是我在使用“ rails”在本地部署时遇到的错误

couldn't find file 'grayscale-sass/assets/bower_components/jquery.easing/js/jquery.easing.js' with type 'application/javascript'
Extracted source (around line #20):
20 //= require grayscale-sass/assets/bower_components/jquery.easing/js/jquery.easing.js

这是我的application.js文件

//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .


//= require grayscale-sass/assets/bower_components/jquery.easing    /js/jquery.easing.js


//= require grayscale-sass/assets/bower_components/bootstrap/dist/js/bootstrap.js
//= require grayscale-sass/assets/js/grayscale.js

但是,如果我进入application.js文件并删除require jquery前面的“ // =”,错误就会消失并且我的应用程序将运行。 但是,当我部署到heroku时,它会失败并显示一条错误消息

ExecJS::ProgramError: Unexpected token: name (jquery) (line: 14, col: 8, pos: 586)

第14行是require jquery的application.js文件

Rails的资产编译器(即Sprockets)找不到该文件。 删除// =时,错误消失了,因为它在编译资产时停止寻找它。 这意味着您最终会获得包含“ require ...”行的实际JavaScript,该行是无效的JavaScript,而不是所需的内容( require=是Rails / Sprocket而不是JavaScript的东西)。

要解决此问题,您需要将文件放在正确的位置。 对于像Grayscale-Sass这样的第三方库,标准方法是将其复制到your-project/vendor/assets/… 也就是说,有更好的方法将第三方前端项目引入Rails。 Rails Assets对此很有好处。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM