1

我正在使用名爲Fancy Gallery的jQuery插件,該插件通常會調用插件文件夾中的圖像文件夾中的圖像,如background:url("../images/fancygallery/arrows_sprite.png")。我的問題有2部分jQuery插件和Rails資產管道

  1. 這個插件應該如何與我的rails 3.1應用程序集成?該文件夾是否應放置在供應商/資產文件夾內?該插件有3個文件夾,CSS,圖像,JS。如果我把它們放在vendor/assets/stylesheets,vendor/assets/images,vendor/assets/javascripts,那麼css肯定無法在../images文件夾中找到這些圖像,因爲在資產流水線化完成後,它將不再存在。那麼應該在哪裏放置?

  2. 是否有一種簡單的方法,我不必進入我的插件並在加載圖像的任何地方編輯css?我不想每次更新插件時都這樣做,必須有一種方法,我可以直接刪除插件文件夾並使其工作。

經進一步測試

這是我在運行的問題。例如,在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"; 

因此,所有的圖像都被relateve了這一點。

回答

1

我能夠通過添加一個fancygallery-plugin文件夾,然後在其中刪除fancygallery文件夾來解決此問題。在asset:precompile之後,fancygallery文件夾在資產文件夾中可用。然後,我只是從application.css.scss文件中稱爲CSS和JS文件,而不是直接的,就像這樣:

<%= 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" %> 

這使得圖像引用剛工作的插件開發者打算如何它是和他們加載精細。

+1

你把「fancygallery-plugin」文件夾放在哪裏? – AKWF