Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3.1 为什么资产管道要重新编译已编译的资产,创建冗余的嵌套路径?_Ruby On Rails 3.1_Asset Pipeline - Fatal编程技术网

Ruby on rails 3.1 为什么资产管道要重新编译已编译的资产,创建冗余的嵌套路径?

Ruby on rails 3.1 为什么资产管道要重新编译已编译的资产,创建冗余的嵌套路径?,ruby-on-rails-3.1,asset-pipeline,Ruby On Rails 3.1,Asset Pipeline,当我将我的应用程序部署到生产环境(使用capistrano)时,我在资产预编译期间收到一个错误: * executing `deploy:assets:precompile' * executing "cd /home/ubuntu/projects/Marketplace-web/releases/20130124162353 && bundle exec rake RAILS_ENV=production RAILS_GROUPS=assets assets:prec

当我将我的应用程序部署到生产环境(使用capistrano)时,我在资产预编译期间收到一个错误:

  * executing `deploy:assets:precompile'
  * executing "cd /home/ubuntu/projects/Marketplace-web/releases/20130124162353 && bundle exec rake RAILS_ENV=production RAILS_GROUPS=assets assets:precompile"
    servers: ["server_name"]
    [server_name] executing command
*** [err :: server_name] rake aborted!
*** [err :: server_name] File name too long - /home/ubuntu/projects/Marketplace-web/releases/20130124162353/public/assets/assets/assets/assets/assets/assets/assets/assets/assets/assets/assets/assets/assets/widgets/jquery.jcarousel-d505e569ed1040e0b45bc33e0e49f117.js-26b4b41e4a45cb353ba7e39510893ace-93b194138c96579222ca08f9651946a7-43eca25d0cc511b37176bc58d8575e1a-1b97916c47bfa22545013b3751cb59e4-d9043106773924d12596e08b349f00dc-b7b7aa9bf440ca19896b1103d7651728-c40c1f2b8b11e6de163fefea9db6778c.gz+
我在上找到一条评论,说可以通过从我的config/application.rb中删除此项来解决此问题:

config.assets.paths << "#{Rails.root}/public"
config.assets.path检查:

  • config.assets.path
    包含用于查找资产的路径。将路径附加到此配置选项将导致在搜索资产时使用这些路径
不要将输出目录添加到输入目录数组中。否则,上一次资产编译运行的输出将作为另一个输入包含到下一次资产编译运行中


如果您编写了可编译资产,则它们通常应位于
app/assets
中;如果您没有编写,则应位于
vendor/assets
中。为什么不将
jquery.carousel.js
放入
供应商/assets/javascripts/

Ooh,谢谢!因此,即使资产不需要通过资产管道进行任何编译或转换,我仍然必须通过资产管道运行它,而不仅仅是将其存储在公共目录中?我想我可以看到,我以前不太清楚。。。是这样吗?资产可能不需要从一种源语言编译到另一种目标语言,但它仍然很有用,我仍然可以使用资产管道。