javascript - 使用 jquery 脚本页面从当前文件夹设置 css 图像

标签 javascript jquery css asp.net path

我有一个外部 Javascript 页面位于父级的 ../Scripts/CBox/ 文件夹下。 同一文件夹中有一张图片。我想从那里使用 Jquery 为控件设置 background-image 。当我使用这段代码时,它将 background-image 路径设置为 localhost:7905/ddl_arrow.png 其中 localhost:7905 是我的 asp。 net 开发服务器。

 function createAutoCBox(boxCtrl) {

    $(boxCtrl).css('background-image', 'url("ddl_arrow.png")'); 
    $(boxCtrl).css('background-repeat', 'no-repeat');
    $(boxCtrl).css('background-position-x', '99%');
    $(boxCtrl).css('background-position-y', '-2px'); 
    $(boxCtrl).mousemove(jqAutoCompleteMouseMove);
    $(boxCtrl).keyup(jqAutoCompleteKeyUp);
    $(boxCtrl).mousedown(jqAutoCompleteMouseDown);
}

最佳答案

没有办法“获取当前脚本在服务器上的路径”,因为 JS 是在客户端完成的。所以没有简单的方法来做你想做的事。

解决这个问题的方法只有几种,而且所有方法都基于相同的原则:正确组织文件 - 每个资源都应该是一个 URL。想一想:如果您不能可靠地判断 ddl_arrow.png 的存储位置,浏览器也不能。

我认为最好的解决方案是将所有图像放在服务器根目录下的 [img] 文件夹中。这意味着您可以通过以下方式引用图像:url(/img/ddl_arrow.png)。无论哪个 JS、哪个 CSS 或 HTML 文件需要图像,请确保它们始终使用前面的斜线引用图像。当然,这不仅适用于图像,还适用于所有其他 Assets /资源——字体、视频、音频,甚至 HTML、CSS、JS 文件本身。基本上,您的服务器提供的每个文件都应该以这种方式引用。

还有其他涉及讨厌、困惑的东西的黑客攻击,比如使用服务器端脚本打印 JS 文件的位置,这些文件被直接提取到 JS 文件中,但我建议远离这些方法。

关于javascript - 使用 jquery 脚本页面从当前文件夹设置 css 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30951953/

相关文章:

javascript - pm2 启动两个不同版本的重复进程

javascript - 使用 jQuery,我需要根据输入值创建一个分隔字符串

html - 扩展指向包含它的 div 的链接

html - 为什么我的固定菜单在我的汉堡包图标下面?

javascript - 如何使用 JavaScript 在图像中应用水印?

javascript - 如何在对象数组中查找值

javascript - 点击后打印日期

javascript - 调用 .submit() 后创建的表单未提交

jquery - 像按钮变化有过渡效果

html - bootstrap - 将表数据相互对齐