Jquery插件实现和资源位置的最佳实践

时间:2010-03-28 07:59:14

标签: jquery css

这可能是一个非常基本的问题,但我似乎在插入jquery插件时遇到了问题。 问题似乎是脚本,css和图像的位置,并确保css具有正确的图像URL。

标准插件具有以下文件夹结构(例如:JPicker)

  • js
  • css
  • 图像

我的项目是asp.net mvc所以我有默认值:

  • 脚本
  • 图像
  • 含量

所以,我尝试将jquery插件拆分到相应的文件夹(不确定这是否是最好的方法?)。 然后我尝试纠正css中对图像(背景网址)的引用。我相信url是相对于实现css文件的页面,而不是css文件本身的位置。

无论如何,当我尝试上述操作时,插件似乎无法正常工作。我认为问题在于未找到图像。 jquery代码运行没有错误,所以我认为这不是问题。

非常感谢任何帮助/建议

2 个答案:

答案 0 :(得分:3)

在CSS中,图像需要与关联到CSS文件,以便修复其他插件。但是......这不是jPicker特有的问题。出于某种原因,该插件直接在.js中引用文件。它有一个硬编码的图像路径,你可以在这里的代码中找到:

clientPath: '/jPicker/images/'

要覆盖它,当您调用jPicker时,请设置如下路径:

$('#myPicker').jPicker({images:{clientPath:'/images/'}}); 

答案 1 :(得分:1)

这是jPicker插件开发人员Chris Tillman。我想回答一下为什么脚本使用clientPath选项引用文件。

直接引用文件而不是仅使用包含的CSS文件的原因是针对IE5.5 / 6。如果不使用过滤器,它们不支持半透明,我需要图像的文件路径来设置过滤器。如果我可以消除它,那么它可以从CSS文件链接。

我总是建议对clientPath使用绝对路径,因为在JavaScript中,当我获得这些图像位置时,它们将与运行页面相关,而不是与JS文件相关。这意味着如果您使用相对路径并且在不同位置有两个页面,则需要两个图像副本。

但是,您可以拆分css和图像文件,并将clientPath指向图像文件夹。我不使用clientPath来查看任何css或js文件。只需在页面中引用CSS和JS的正确位置,并将clientPath设置为图像所在的文件夹。