why base tag does not work for relative paths?

你。 提交于 2019-11-27 05:31:14

问题


I have a BASE tag as below in head section of the page:

<base href="http://localhost/framework">

And a script as below which is relative (of course after base tag):

<script src="/assets/jquery-1.7.1.min.js">

But when I open jQuery from firebug it shows:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body> 
Blah Blah Blah....

When I use the below link it's OK though:

<script src="http://localhost/framework/assets/jquery-1.7.1.min.js">  

I looked for answer everywhere, but it seems I'm doing my job right! So what is the problem?


回答1:


/assets/jquery-1.7.1.min.js is not relative but absolute*, the / takes it to the root even with a base tag.

If you remove that /, it should make it relative off the current path, which, when a base tag is present would be http://localhost/framework/.

You will also need to add a trailing / to the end of the href, to indicate that it's a folder.

Full working example:

<!doctype html>
<html>
<head>
<base href="/test/" />
<script src="assets/test.js"></script>
<body>
hi
</body>
</html>

* Actually depending on who you ask, it's still relative since it is relative off the current domain. But I prefer to call this absolute since it's signifying the path is from the root, based on the current domain. Although, I guess technically that makes it relative in the grand scheme of things, and absolute only in terms of the current domain. Whatever.




回答2:


Try having your base tag like:

<base href="http://localhost/framework/">

and your script tag like:

<script src="assets/jquery-1.7.1.min.js">


来源:https://stackoverflow.com/questions/11521011/why-base-tag-does-not-work-for-relative-paths

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!