我正在使用一个jQuery插件,称为花式画廊,它经常调用图片文件夹中的图片文件夹内的插件文件夹,如background:url("../images/fancygallery/arrows_sprite.png")。我的问题有两部分
vendor/assets/stylesheets、vendor/assets/images、vendor/assets/javascripts中,那么css肯定无法找到../images文件夹中的图像,因为在完成资产管道操作之后,它就不再存在了。那么,这应该放在哪里呢?,
进一步测试
这就是我要讨论的问题。例如,在CSS中,下面是加载箭头background: url('../images/fancygallery/arrows_sprite.png')的一部分。在整个插件中,所有的图像都会被引用到类似的../images中。因此,当页面加载插件时,它是这样查找图像http://localhost:3000/images/fancygallery/arrows_sprite.png的,但是图像不存在,它存在于assets/fancygallery/images文件夹中。有什么办法可以让../images看起来像http://localhost:3000/assets/fancygallery/images/而不是http://localhost:3000/images/?或者其他一些解决方法,不需要我修改插件代码,这样我以后就可以轻松地更新它。
问题的一部分是
插件css正在像下面这样加载到我的application.css.SCSS文件中
@import "fancygallery/css/uniform.aristo";
@import "fancygallery/css/jquery.fancygallery";
@import "fancygallery/css/prettyPhoto";所以所有的图像都与此相关。
发布于 2011-11-04 06:26:37
我能够通过添加一个fancygallery-plugin文件夹,然后将fancygallery文件夹放到那里来解决这个问题。在asset:precompile之后,fancygallery文件夹在资产文件夹中可用。然后,我直接调用css和js文件,而不是从application.css.scss文件中调用,如下所示:
<%= stylesheet_link_tag "fancygallery/css/uniform.agent.css" %>
<%= stylesheet_link_tag "fancygallery/css/jquery.fancygallery.css" %>
<%= stylesheet_link_tag "fancygallery/css/prettyPhoto.css" %>
<%= javascript_include_tag "fancygallery/js/jquery.uniform.min.js" %>
<%= javascript_include_tag "fancygallery/js/jquery.fancygallery.min.js" %>
<%= javascript_include_tag "fancygallery/js/jquery.prettyPhoto.js" %>这使得图像引用只是插件开发人员想要的那样工作,并且它们加载得很好。
https://stackoverflow.com/questions/8003043
复制相似问题