将 Rails 应用程序部署到 Heroku 后,不显示 JQuery 函数中的图像

Posted

技术标签:

【中文标题】将 Rails 应用程序部署到 Heroku 后,不显示 JQuery 函数中的图像【英文标题】:Images in JQuery function are not displayed after deploying a rails app to Heroku 【发布时间】:2016-03-03 00:41:37 【问题描述】:

我正在使用 JQuery 函数在 Rails 应用程序中扩展和收缩 ul 列表。一切都在本地顺利进行。但是,部署到 heroku 后,图像无法显示。

$(function()

 ...
    opener: 
       active: true,
       close: '/assets/Remove2.png',
       open: '/assets/Add2.png',

       openerCss: 
         ...
  );

Github 仓库:https://github.com/ReemAlattas/AT2

Heroku 应用程序:http://at2.herokuapp.com/plans

谢谢!

【问题讨论】:

我无法在代码中找到您使用这些资产的位置。您能具体说明一下吗? 【参考方案1】:

给您的 javascript 文件一个 .erb 结尾,然后您可以为此正确使用资产管道:

$(function()

 ...
    opener: 
       active: true,
       close: "<%= asset_path('Remove2.png') %>",
       open: "<%= asset_path('Add2.png') %>",

       openerCss: 
         ...
  );

现在,当您部署到 Heroku 时,您的图像将在预编译后获得正确的摘要文件名。

【讨论】:

非常感谢您的回复。这在本地有效,但在 Heroku 上仍然无效...我运行 rake assets:precompile 但仍然 :(【参考方案2】:

只需查看 heroku 页面和 github 存储库即可。该图像正如@rlarcombe 指出的那样,但我看到了另一个问题,您在模板中调用了原始脚本标记:

<script src="/assets/jquery-sortable-lists.js"></script>

在进行预编译时这将是一个问题。您可以尝试用javascript_include_tag 替换所有本地脚本标签,看看是否有效:

<%= javascript_include_tag "jquery-sortable-lists" %>

【讨论】:

以上是关于将 Rails 应用程序部署到 Heroku 后,不显示 JQuery 函数中的图像的主要内容,如果未能解决你的问题,请参考以下文章

部署到heroku后如何清除rails缓存?

如何将 Rails + Webpacker 应用程序部署到 Heroku?

将应用程序部署到 Heroku 后无法推送到 Github

在 Ruby on Rails 中使用 Heroku

使用webpack将Rails应用程序部署到heroku

尝试将 Rails 应用程序部署到 heroku 时出现 Uglifier 错误