【问题标题】:Why does Rails not serve up images with the word "background" in their name?为什么 Rails 不提供名称中带有“背景”一词的图像?
【发布时间】:2015-05-01 13:47:48
【问题描述】:

这在我的开发环境中不起作用。

我在 Google 和 SO 上浏览了相关帖子,并尝试了这里提到的所有内容:Rails 4 image-path, image-url and asset-url no longer work in SCSS files

我尝试将我的图像放在样式表目录中,将其放在图像目录中,尝试使用 assets/images/my-image.jpg、images/ 中的asset-url、image-url、url 来访问它my-image.jpg、my-image.jpg、assets/my-image.jpg,这些都不起作用。我已经在 config/environments 中检查了 development.rb,但我没有配置为 serve_static_assets,虽然我在 assets.rb 中预编译了一些字形并在其中附加了一些文本以预编译 application.rb 中的字体文件,但我没有'不知道这将如何阻止我的图像被服务器发送。

我通过重新设置我的一些页面的样式来检查我的样式表是否被发送,并且它们正在被提供,所以这是图像未发送的问题。我也一直在清除测试运行之间的缓存,并且一直在控制台中接收到我想要的图像被搜索但后来没有找到的日志。

关于可能导致这种情况的任何想法?我正在运行带有 ruby​​ 2.1.5 的 Rails 4.2.0。

更多详情:我发现这个问题与我的图片在图片名称中包含“背景”一词有关。 如果有人可以回答这个问题,“它是否真的是图像名称,看起来,因为更改图像的名称有效?还是比这更深?”那太好了,但如果不是,Rails 是巨大的,所以有人可以给我一个 Rails 的起点来调查代码,以找出究竟是什么逻辑过滤掉了开头或包含的图像“背景”这个词?

我想也许 Sprockets 会是这个地方,但我不确定 Sprockets 是否真的发送资产,它只是编译它们,我不确定它是否对图像做任何事情,或者它是否只是处理编译 Sass还有 JavaScript 和其他东西……如果我正确完整地阅读内容的话,自述文件并没有具体说明 Sprockets 的作用。

【问题讨论】:

  • 我刚刚在一个全新的项目上进行了尝试,效果相同 - rails 找不到我的图像。
  • 如果我打开一个 Pry Rails 控制台会话并 cd 进入应用程序对象并运行以下代码来查看 sprocket 可用的内容,它会返回我的图像的文件路径。我不知道这是否对任何人有帮助,但这表明我的形象可能会在此过程中丢失。 @app.assets.each_file { |f| puts f.to_s }
  • 我遇到了类似的问题。您是否检查过预编译的资产是否在您的 public/assets 目录中?如果是,请尝试以下操作:将您的 css 更改为 xxx.css.erb 并将 url 更改为资产使用:url()。问题是该文件具有“已消化”的文件名,而不是原始的“my-image.jpg”。对asset_path 的调用应该可以解决这个问题(至少对我来说是这样)。
  • @JPlato 感谢您的建议,但我用asset_path 和image_path 方法都试过了,没有人能找到我的图像。我什至将我的图像直接添加到 public/assets 和 public/assets/images 目录,但没有成功。我还尝试添加和删除显式命令来预编译带有图像扩展名的文件并手动设置 config.assets.paths。发生了什么事,为什么 Rails 不能,即使是在一个新项目中,也不能提供我的图像?这简直令人沮丧。
  • 最近的开发,我尝试了一个不同的JPG图像,它工作正常。 Rails 无法识别这个特定 JPG 的图像格式吗?我想知道为什么会这样,因为我想专门使用这张图片。

标签: ruby-on-rails image ruby-on-rails-4 background-image assets


【解决方案1】:

您没有说,但我假设您已重新启动服务器 - 也尝试停止 spring:spring stop

【讨论】:

  • 是的,我一直在停止并重新启动服务器,但我还没有尝试过使用 spring。
  • 虽然使用image-url函数没有成功。
【解决方案2】:

事实证明,Rails 排除了任何类似于“background.jpg”的图像,因此将图像重命名为不包含“背景”一词的图像解决了这个问题。

【讨论】:

    猜你喜欢
    • 2021-02-05
    • 2022-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-31
    • 2019-07-01
    • 1970-01-01
    相关资源
    最近更新 更多