我的设置包括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)中创建了一个子目录图像,并将引用的图像复制到那里并且它有效。
但是jQuery不应该在资源目录中正确引用图像。下面是错误引用的jQuery代码,其中突出显示了行生成错误:
是否需要在application.rb或环境文件中设置任何配置参数来设置jQuery的资产路径?或者任何其他方法来解决这个问题?
答案 0 :(得分:1)
在您的项目中搜索CSS&将images/ui-bg_glass_80_d7ebf9_1x400.png
替换为ui-bg_glass_80_d7ebf9_1x400.png
,希望它有效。
答案 1 :(得分:0)
这种情况正在发生,因为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"
这假定您的资产是sym链接到公共目录 您可以将该路径更改为直接指向您的资产所在的任何位置。
这有点像一个kludge,好像我决定改变主题(极不可能)我需要更新我的Apache配置。
但对我来说,这比重写CSS文件更改路径更好,因为升级时会变得很痛苦。
希望这有帮助。