Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对jquery加载和到html页面的直接链接使用相对路径_Jquery_Html_Load_Relative Path_Absolute Path - Fatal编程技术网

对jquery加载和到html页面的直接链接使用相对路径

对jquery加载和到html页面的直接链接使用相对路径,jquery,html,load,relative-path,absolute-path,Jquery,Html,Load,Relative Path,Absolute Path,在我的网站上,我使用链接在div中加载html页面 <a class="iframe" href="portfolio/1/1.html">Link</a> 如果在新选项卡中打开其中一个链接,则不会加载css和图像,因为我使用相对路径,因为html页面最终位于div中。 通过在html页面上使用绝对路径,我可以让它们加载,但是当链接加载到div中而不是新选项卡上时,这会导致css加载两次 <html> <head> <meta http-e

在我的网站上,我使用链接在div中加载html页面

<a class="iframe" href="portfolio/1/1.html">Link</a>
如果在新选项卡中打开其中一个链接,则不会加载css和图像,因为我使用相对路径,因为html页面最终位于div中。 通过在html页面上使用绝对路径,我可以让它们加载,但是当链接加载到div中而不是新选项卡上时,这会导致css加载两次

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="css/main.css" type="text/css" media="screen"/>
</head>

<body>
<div>
<img src="portfolio/1/1.jpg"/>
</div>
</body>
</html>

有没有办法只使用相对路径来解决这个问题?基本上,我希望html页面像它们那样加载到div中,但是如果用户直接打开html页面,仍然能够正确加载内容,而不使用绝对路径(如果可能)。

使用base标记指定基本url。html文档中的所有相对链接都是相对于您的基础的

我必须在每个html页面上添加它吗?如果是这样,它与绝对路径有何不同?您需要在要在新选项卡中工作的页面的标题部分添加一次基本标记。如果没有基本标记,文档中的相对链接是相对于当前窗口位置的-因此,在新选项卡中,例如,相对css链接指向yourdomain.com/portfolio/1/css/main.css。对于基集,所有相对链接都是相对于基的,例如,如果在html中将yourdomain.com设置为基,则无论窗口位置如何,相对css链接都指向yourdomain.com/css/main.css。我希望这有帮助。我刚刚尝试过,但它会产生与绝对路径相同的问题,当链接加载到div中时,css会加载两次,我也在猜测图像。也许我可以使用jquery在链接加载到div中时删除基本标记?我的解决方案应该只会帮助您的css和图像在新选项卡中工作。iframe不会受到包含它的页面中的样式表的影响,因此将再次加载该文件。大多数浏览器将从缓存中加载,而不是从服务器获取。或者你的意思是css文件加载三次——一次在父页面,两次在iframe中?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="css/main.css" type="text/css" media="screen"/>
</head>

<body>
<div>
<img src="portfolio/1/1.jpg"/>
</div>
</body>
</html>