如何从Rails应用程序中的引擎提供图像资产

我是唐尼

我无法在引擎中获取图像资产以在主机应用程序内部进行渲染。

由于view/layout/application.html.erb文件中的代码如下,我的主机应用程序能够从引擎中捕获CSS和javascript

 <%= stylesheet_link_tag    'my_engine/application', :media => 'all' %>
 <%= javascript_include_tag 'my_engine/application' %> 

但是,我不知道类似的方法来包含来自引擎的图像。关于如何获取引擎的图像文件以在主机应用程序中呈现的任何想法?

编辑:

在引擎的engine.rb文件中,我将images目录添加到了应用的目录中,如下所示:

initializer :assets do |config|
  Rails.application.config.assets.paths << root.join("app", "assets", "images", "my_engine", "some_subdirectory")
end

并且该视图具有一个图像标签,如下所示:

<%= image_tag "/my_engine/some_subdirectory/picture.png" %>

但是我的服务器日志显示如下:

Started GET "/assets/some_subdirectory/picture.png" for 127.0.0.1 at 2014-04-06 20:11:38 -0500
Served asset /some_subdirectory/picture.png - 404 Not Found (3ms)

ActionController::RoutingError (No route matches [GET] "/assets/some_subdirectory/picture.png"):
瑞安·比格(Ryan Bigg)

您根本不需要这样做,因为Rails会为您做到这一点

initializer :assets do |config|
  Rails.application.config.assets.paths << root.join("app", "assets", "images", "my_engine", "some_subdirectory")
end

相反,您可以像在应用程序中一样完全引用图像:

<%= image_tag "your_image.jpg" %>

我假设这your_image.jpg是在/app/assets/images/your_image.jpg您的引擎之内。如果在子目录中,则:

<%= image_tag "subdirectory/your_image.jpg" %>

除非文件位于位置app/assets/images/your_engine/your_image.jpg否则无需在路径中包含引擎名称,在这种情况下:

<%= image_tag "your_engine/your_image.jpg" %>

这将是正确的方法。

《引擎指南》还包含有关引擎的更多有用信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何提供父Rails应用程序可用的引擎方法?

来自分类Dev

将包装器应用程序资产文件访问到Rails3中的引擎

来自分类Dev

在主应用程序中包含引擎中的资产

来自分类Dev

如何在Rails应用程序中包含插件/引擎?

来自分类Dev

ngnix 不提供我的 rails 应用程序的资产

来自分类Dev

如何将父应用程序的布局和资产应用于已安装的引擎?

来自分类Dev

如何为CORS Rails应用程序公开Javascript资产?

来自分类Dev

如何为CORS Rails应用程序公开Javascript资产?

来自分类Dev

在Rails应用程序中自动加载资产文件

来自分类Dev

我无法让资产在Rails应用程序中工作

来自分类Dev

Rails引擎中的Ember CLI应用程序

来自分类Dev

如何在主应用程序中访问 Rails 可安装引擎帮助方法?

来自分类Dev

Rails单独的应用程序或引擎

来自分类Dev

Rails应用程序不在生产环境中提供JS和SCSS资产

来自分类Dev

如何将应用程序图像添加到iPad和iPad Pro的资产目录中?

来自分类Dev

即使在rake资产之后,Rails应用程序也会为图像返回404:precompile

来自分类Dev

如何在 Django 应用程序中提供 Angular 图像?

来自分类Dev

Rails4-如何压缩用户在Rails应用程序中附加的图像而不会裁剪?

来自分类Dev

如何在yii2中将应用程序资产编译为模块资产?

来自分类Dev

如何在Intern中针对Rails提供的骨干应用程序运行功能测试?

来自分类Dev

带有Sinatra引擎的Rails应用程序-如何避免Rails错误?

来自分类Dev

在Rails 4应用程序中未加载的Rails完整引擎路由

来自分类Dev

Shopify 应用程序 - 如何使用带有 ruby on rails 的应用程序代理来包含资产

来自分类Dev

资产文件夹中的更新图像未在启动应用程序上显示

来自分类Dev

Xamarin.ios:应用程序中未加载图像资产目录

来自分类Dev

在Ionic(Cordova)应用程序中处理Rails(后端)中的上载资产

来自分类Dev

Rails应用程序资产在WEBrick中只能正常显示,但是没有来自apache2的CSS,Javascript或图像吗?

来自分类Dev

如何使用markdown和Redcarpet Gem在我的Rails应用程序中渲染图像?

来自分类Dev

在Rails应用程序中需要本机HTML的图像路径

Related 相关文章

  1. 1

    如何提供父Rails应用程序可用的引擎方法?

  2. 2

    将包装器应用程序资产文件访问到Rails3中的引擎

  3. 3

    在主应用程序中包含引擎中的资产

  4. 4

    如何在Rails应用程序中包含插件/引擎?

  5. 5

    ngnix 不提供我的 rails 应用程序的资产

  6. 6

    如何将父应用程序的布局和资产应用于已安装的引擎?

  7. 7

    如何为CORS Rails应用程序公开Javascript资产?

  8. 8

    如何为CORS Rails应用程序公开Javascript资产?

  9. 9

    在Rails应用程序中自动加载资产文件

  10. 10

    我无法让资产在Rails应用程序中工作

  11. 11

    Rails引擎中的Ember CLI应用程序

  12. 12

    如何在主应用程序中访问 Rails 可安装引擎帮助方法?

  13. 13

    Rails单独的应用程序或引擎

  14. 14

    Rails应用程序不在生产环境中提供JS和SCSS资产

  15. 15

    如何将应用程序图像添加到iPad和iPad Pro的资产目录中?

  16. 16

    即使在rake资产之后,Rails应用程序也会为图像返回404:precompile

  17. 17

    如何在 Django 应用程序中提供 Angular 图像?

  18. 18

    Rails4-如何压缩用户在Rails应用程序中附加的图像而不会裁剪?

  19. 19

    如何在yii2中将应用程序资产编译为模块资产?

  20. 20

    如何在Intern中针对Rails提供的骨干应用程序运行功能测试?

  21. 21

    带有Sinatra引擎的Rails应用程序-如何避免Rails错误?

  22. 22

    在Rails 4应用程序中未加载的Rails完整引擎路由

  23. 23

    Shopify 应用程序 - 如何使用带有 ruby on rails 的应用程序代理来包含资产

  24. 24

    资产文件夹中的更新图像未在启动应用程序上显示

  25. 25

    Xamarin.ios:应用程序中未加载图像资产目录

  26. 26

    在Ionic(Cordova)应用程序中处理Rails(后端)中的上载资产

  27. 27

    Rails应用程序资产在WEBrick中只能正常显示,但是没有来自apache2的CSS,Javascript或图像吗?

  28. 28

    如何使用markdown和Redcarpet Gem在我的Rails应用程序中渲染图像?

  29. 29

    在Rails应用程序中需要本机HTML的图像路径

热门标签

归档