繁体   English   中英

找不到Rails / Heroku的预编译资产

[英]Rails/Heroku precompiled assets not being found

我对Rails和Heroku还是很陌生,并且正在尝试部署一个使用jQuery UI库的应用程序。 我的app/assets文件夹中有jQuery UI Javascript和CSS文件,并且已将其设置为预编译资产(必须这样做才能使我的应用程序真正在Heroku上运行)。 但是,当我加载页面时,找不到jQuery UI文件(jQuery UI无法正常工作)。 根据我的收集,它将文件重命名为<filename>-<md5 hash>.js/css 如何使其引用正确的文件?

app/views/layouts/application.html.erb

  <%= stylesheet_link_tag    "application" %>
  <%= javascript_include_tag "application" %>
  <%= javascript_include_tag "http://code.jquery.com/jquery-1.7.1.min.js" %>
  <%= javascript_include_tag "jquery-ui-1.8.16.custom.min" %>
  <%= stylesheet_link_tag "jquery-ui-1.8.16.custom" %>
  <%= stylesheet_link_tag "http://fonts.googleapis.com/css?family=Open+Sans:300italic,400,300" %>
  <%= csrf_meta_tags %>

实际上,我建议删除预编译资产功能,并允许Heroku为您完成此操作。 我最初像您一样开始,但是很快发现这是一种更好的方法,并受到Heroku支持的建议,以便在段编译期间进行资产编译。

请确保您使用的是Cedar堆栈,而不是Bamboo, 请查看此内容 ,然后按照以下步骤进行故障排除: 在此处输入图片说明

旁注特别重要:“如果在您的应用程序中检测到public/assets/manifest.yml ,Heroku将假定您自己在进行资产编译,而不会尝试编译资产。”

确保删除预编译已创建的public / assets / *文件夹下的所有内容,包括manifest.yml文件。

否则,应自动包括app/assets/javascripts所有JavaScript文件,并且您应该能够在以开发模式检查时看到它(默认情况下,在heroku的生产模式下,它们将全部缩小为一个application.js文件) ,但如果它们以开发人员模式显示,则您应该是金牌)。

如果您使用默认的Bamboo堆栈,则需要通过rake assets:precompile自己并将结果提交到public / assets中并将其推送到Heroku。 否则,使用Cedar堆栈可能是一个更简单的选择。

如此处所述( https://devcenter.heroku.com/articles/ruby-support#static-assets ),您应该将'rails_serve_static_assets'gem添加到您的Gemfile中,此问题将得到解决。

暂无
暂无

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

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