【问题标题】:Assets pipeline issues when upgrading to Rails 3.1升级到 Rails 3.1 时的资产管道问题
【发布时间】:2015-01-19 19:28:56
【问题描述】:

我正在将一个非常旧的项目升级到最新版本的 rails。因此,我已经阅读了大量有关 rails 3.0 和 3.1 之间资产管道更改的内容,包括 this 整个页面,并且我已经按照第 9 部分中的所有步骤进行操作。我还阅读了很多堆栈交换问题处理似乎与我相同的问题。但是这些都不起作用。

app/views/layouts/_sidebar.html.erb我有这个html:

<img id="admin_img" style="border:none"
src="/images/<%= in_server_menu ?  'expanded' : 'collapsed' %>.gif" />

升级后,我已将 src= 更改为以下所有内容:

src="<%= image_path(in_server_menu ?  'expanded.gif' : 'collapsed.gif' )%>"
src="/assets/<%= in_server_menu ?  'expanded' : 'collapsed' %>.gif"
src="/assets/images/<%= in_server_menu ?  'expanded' : 'collapsed' %>.gif"
src="assets/<%= in_server_menu ?  'expanded' : 'collapsed' %>.gif"
src="app/assets/images/collapsed.gif"

和许多类似的路径,但图像无法加载。前两个的实际 HTML 输出是

src="/assets/collapsed.gif"

这似乎是正确的,因为我的文件系统如下所示:

project_folder
  ->app
    ->assets
      ->images
        ->collapsed.gif

Firefox 显示默认的“损坏的图像”缩略图,但图像信息说它是 0 字节并且无法加载,这让我觉得它没有被找到。进行更改后,我重新启动了服务器,并且使用 Firefox 手动打开文件有效,因此图像没有损坏。

Rails.application.assets.paths 包含

/path/to/the/project/folder/app/assets/images

以及其他资产文件夹。
我已经确认我正在修改的 src 标签确实是我正在查看的损坏的图像,所以没有那么简单。

我还能做些什么来加载此图像?我还可以采取哪些其他故障排除步骤?我还遇到了其他资产尚未加载的问题,我可以在加载页面并查看服务器输出时看到这些问题,但我还没有解决这些问题。

【问题讨论】:

    标签: ruby-on-rails ruby image ruby-on-rails-3 asset-pipeline


    【解决方案1】:

    试试这样:-

    <%= image_tag (in_server_menu ? "expanded.gif" : "collapsed.gif"), :id => "admin_img", :style => "border:none"  %>
    

    【讨论】:

    • 嗯,它摆脱了损坏的图像缩略图,但现在只显示“折叠”替代文字。
    • in_server_menu 将返回true 那么它只会显示expanded.gif
    • 是的,我知道,目前是假的。 collapsed.gif 仍然没有加载。
    • 检查带有扩展名的图像的file name。可能有Collapsed.gif 而不是collapsed.gif
    • 有趣的是,替代文本是“折叠”,带有大写字母 C,并且不会出现在项目的任何地方。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-12
    • 2012-02-04
    • 2011-11-23
    相关资源
    最近更新 更多