到目前为止,我一直在尝试使用sinatra-assetpack
gem来编译远程服务器中的资产。它在将其部署到Heroku或本地计算机时进行编译,但不在远程服务器中进行编译。
我在sinatra app文件中有这个配置:
assets do
serve '/js', :from => 'assets/javascripts'
serve '/css', :from => 'assets/stylesheets'
serve '/images', from: 'assets/images'
serve '/bower_components', from: 'bower_components'
js :landing, [
'/bower_components/sweetalert/lib/sweet-alert.min.js',
'/js/back-to-top.js',
'/js/subscription.js'
]
js :checkout, [
'/js/form.js',
'/js/vendor/*.js'
]
css :landing, [
'/bower_components/sweetalert/lib/sweet-alert.css',
'/css/normalize.css',
'/css/landing.css'
]
css :checkout, [
'/css/normalize.css',
'/css/checkout.css',
'/css/vendor/animate.css'
]
js_compression :jsmin
css_compression :sass
end
执行rake assetpack:build
时,除了checkout.js
之外,所有文件都已正确编译。它确实生成了public/assets/javascripts/checkout.js
及其指纹版本,但它们都只包含<h1> Internal Server Error </h1>
。
从预编译过程中删除form.js
(实际上是名为form.coffee
的coffescript)会输出正确编译的checkout.js
。让我疯狂的是,form.coffee
正确地从咖啡转换为javascript(我可以在public/js/form.js
看到它),但它似乎无法与供应商文件合并。