首页 新闻 搜索 专区 学院

JS中设置backgroundImage的URL的生成原理是什么?

0
[待解决问题]
 有个URL相对路径的问题,我找的应该是没有红线的路径,同样的写法,但是为啥就这一张图片找的路径多了中间红线这部分呢?这是咋回事呢?



或者有什么相关文章推荐一下,我找了半天不知道向哪个方向找 
暮色恋伊人的主页 暮色恋伊人 | 菜鸟二级 | 园豆:204
提问于:2017-03-10 09:39
< >
分享
所有回答(3)
0

是在同一个文件里使用的?这种情况我在不同文件中引入相同路径出现过,是因为使用的文件编译出后的路径导致。

名字不好起啊 | 园豆:397 (菜鸟二级) | 2017-03-10 10:18
0

如果是写在CSS中可以用相对路径,

如果是写在JS中,还是老老实实的写完整URL吧。

javascript和css文件中采用相对路径,其基准路径是完全不同的。 

1.javascript引用资源(比如图片)相对路径是以宿主路径(被引用的网页比如你在首页index.php引用了某js文件,则index.php即为宿主)所处位置为基准。 

2.css引用资源(比如图片)相对路径是以.css文件所处位置为基准! 

JAVA WEB的话可以这么写:

<%
    String url = request.getRequestURL().toString();
    String context = request.getContextPath();
    String basePath = url.substring(0, url.indexOf(context)) + context;
    request.setAttribute("ctx", basePath);
%>

<script type="text/javascript">
    var CONTEXT_PATH = '${ctx}';
    var CONTEXT_URL = '${ctx}';
</script>
法码 | 园豆:272 (菜鸟二级) | 2017-03-10 10:58
0
  • 在JS文件中书写相对路径:JS文件是指在页面中引用的外部JavaScript文件,其中可能采用JavaScript代码生成html代码,由于生成的html代码是嵌入在引用该JS文件的页面中,因此,在描述相对路径时,应该使用被引用的文档或素材相对于引用JS文件的页面之间的相对路径。例如,文档“/home/www/a/index.htm”中引用了JS文件“/home/www/a/js/hello.js”,而在该js中生成一段引用素材“/home/www/a/images/1.jpg”的html代码,则在这段代码中,其相对路径应该是“./images/1.jpg”或“images/1.jpg”,而不能是“../images/1.jpg”。

 

  • 在CSS文件中书写相对路径:CSS文件是指在页面中引用的外部样式定义文件,该文件通常用于定义页面中各种html标记的显示效果(例如文本的字体名称、字体大小、缩进、边距等),CSS文件中同样可以引用外部的素材或文档(例如设置某个DIV对象的背景图片)。和JS文件不同,浏览器认为CSS文件也是一个独立的文档,因此,在CSS中对素材的引用可以通过计算素材文件和该CSS文件之间的相对路径来实现,而与引用该CSS文件的页面所在的位置无关。例如,文档“/home/www/a/index.htm”中引用了CSS文件“/home/www/a/css/main.css”,而在该CSS中引用了素材“/home/www/a/images/1.jpg”,则在CSS中对于该素材引用的相对路径应该是“../images/1.jpg”,而不能是“./images/1.jpg”或“images/1.jpg”。
  • 因为js是根据引用的页面去定位图片路径的所以最好定义一个全局的jsp引用,这样可以设置相对路径也可以直接在全局jsp定义全局变量path在js里引用
流年过往 | 园豆:464 (菜鸟二级) | 2017-03-10 17:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册