【问题标题】:Rails 3.2, jQuery 1.7.1 link to assets/images brokenRails 3.2、jQuery 1.7.1 链接到损坏的资产/图像
【发布时间】:2012-03-24 10:46:52
【问题描述】:

我的设置包括 ruby​​ 1.9.3、Rails 3.2 和 jQuery 1.7.1。我发现 jQuery 正在向 /assets/images/image_file.png 发送请求,而不仅仅是 /assets/image_file.png 导致链接断开,如下图所示:

我从Asset Organization 知道,Rails 会在资产中为 js、css 和图像文件寻找合适的文件夹。所以我知道它应该在子目录“images”中查找引用为 /assets/images 的图像。我在 assets/images (app/assets/images/images) 中创建了一个子目录 images 并在那里复制了引用的图像并且它起作用了。

但是 jQuery 不应该正确引用 assets 目录中的图像。这是错误引用的 jQuery 代码,其中突出显示了行生成错误:

是否需要在 application.rb 或环境文件中设置任何配置参数来设置 jQuery 的资产路径?或者任何其他方法来解决这个问题?

【问题讨论】:

  • 我不确定我是否理解你的问题,但你能搜索一下你的css文件,让我知道ui-bg_glass_80_d7ebf9_1x400.png写的是哪个文件和位置吗?

标签: jquery ruby-on-rails ruby-on-rails-3.2


【解决方案1】:

在您的项目下搜索 CSS 并将 images/ui-bg_glass_80_d7ebf9_1x400.png 替换为 ui-bg_glass_80_d7ebf9_1x400.png,希望它有效。

【讨论】:

  • 谢谢。在项目中搜索,发现问题在 jquery-ui-1.8.18.custom.css 文件中。所有图片链接均以images/ 开头。现在我将替​​换所有链接,但我认为应该在 Rails 中解决它,以便可以直接使用 jquery-ui 或其他 css 文件。
  • 欢迎,它不是 Rails + jQuery 的问题,这是因为 jQuery UI 使用自定义 css 的问题,所以我们必须自己处理。任何技术都会出现同样的问题,因为它的自定义 CSS。无论如何,很高兴知道您找到了解决方案... :)
  • 我将所有出现的url(images/image_file_name) 替换为url(image_file_name) 并在jquery-ui 自定义css 文件中尝试了url(/images/image_file_name)。但它仍然会导致损坏的图像链接与对 jquery.js 文件的相同代码引用,如问题所示。
  • @Zeeshan - 正如我告诉你的那样,使用上述信息很难理解/解决问题,这只是我猜测可能是什么问题......
【解决方案2】:

发生这种情况是因为 jquery-ui-1.8.18.custom.css 文件希望其图像位于相对于 CSS 文件本身的 images 目录中。
但是,Rails 3 资产管道将 CSS 文件移动到不同的位置,因此图像路径不再有效。

如果您下载 jquery ui 'start' 主题,标准布局是:

stylesheets/start/
stylesheets/start/jquery-ui-1.8.11.custom.css
stylesheets/start/images/

但资产管道是这样安排的:

stylesheets/
stylesheets/jquery-ui-1.8.11.custom.css
stylesheets/start/images/

所以/images/ui-bg_glass_80_d7ebf9_1x400.png 的相对路径不再起作用。

我有一个解决方法是在我的 Apache 配置中添加一个 Alias 指令:

Alias /assets/images "<path to site>/public/assets/start/images"

这假设您的资产已符号链接到公共目录。
您可以更改该路径以直接指向您的资产从何处提供。

这有点麻烦,好像我决定更改主题(极不可能)我需要更新我的 Apache 配置。
但对我来说,这比重写 CSS 文件来更改路径要好,因为这在升级时会变得很痛苦。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-05
    • 1970-01-01
    • 2017-09-29
    • 1970-01-01
    • 1970-01-01
    • 2016-01-18
    • 1970-01-01
    • 2014-07-30
    相关资源
    最近更新 更多