可能重复:
URI以两个斜杠开头......它们的行为如何?
绝对URL省略协议(方案),以便将当前页面的一个简写保存
为//用于脚本和链接标记?有人看过/使用过吗?
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
为什么URL以两个正斜杠开头?这是速记http://吗?
我正在尝试编写一个GreaseMonkey脚本,我想在其中找到所有相关链接的链接.在我看来,这样做的方法是匹配href的内容/^https?:///.
但我发现当我访问锚点的href属性时,它总是被标准化或烹饪成包含"http"的表单.也就是说,如果HTML包含:
<a id="rel" href="/relative/link">inner</a>
Run Code Online (Sandbox Code Playgroud)
访问
document.getElementById("rel").href
Run Code Online (Sandbox Code Playgroud)
回报
http://example.com/relative/link
Run Code Online (Sandbox Code Playgroud)
如何访问href属性中的原始数据?
或者,是否有更好的方法来查找相关链接?
我正在创建一个网站localhost.我想将我网站中的所有链接资源都设置为相对路径(我的意思是只有内部资源).
网站位于
http://localhost/mywebsite
Run Code Online (Sandbox Code Playgroud)
我读了这个有用的问题Absolute vs relative URL.
我发现/images/example.png和之间存在差异images/example.png
<a href="/images/example.png"> Link To Image</a>
上面的相对路径应该返回,ROOT_DOCUMENT/images/example.png因为/首先是url.就像ROOT_DOCUMENT是这样的/wamp/www/mywebsite
但是当我测试它时,它只会返回 /wamp/www/images/example.png
我应该手动将我的网站文件夹添加/mywebsite/images/example.png到相对路径.
<a href="mywebsite/images/example.png"> Link To Image</a>
Run Code Online (Sandbox Code Playgroud)
由于更改了mywebsite的名称,它没有用.所以:
我正在写一些文档,我有一点词汇问题:
http://www.example.com/en/public/img/logo.gif 被称为"绝对"网址,对吗?../../public/img/logo.gif 被称为"相对"网址,对吗?/en/public/img/logo.gif?它是否也被视为"绝对网址",虽然没有协议和域名部分?
或者它被认为是相对URL,但相对于域的根?
我搜索了一下,有些人把它归类为绝对的,其他人则将其归类为相对的.
我该怎么称呼它?一个"半绝对的网址"?还是"半亲戚"?还有另一个词吗?
这是StackOverflow上经常讨论的问题,这意味着什么:
<script src="//cdn.example.com/somewhere/something.js"></script>
Run Code Online (Sandbox Code Playgroud)
这样做的好处是,如果您通过HTTPS访问它,您将自动获得HTTPS,而不是那个可怕的"此页面上的不安全元素"警告.
但为什么要使用协议相对的URL呢?为什么不直接在CDN URL中使用HTTPS?毕竟,如果您决定通过HTTPS加载某些部分,HTTP页面没有理由抱怨.
(这更适用于CDN;几乎所有CDN都具有HTTPS功能.而您自己的服务器可能不一定具有HTTPS.)
我需要一个给定相对URL的函数,并且base返回一个绝对URL.我搜索并发现许多功能以不同的方式.
resolve("../abc.png", "http://example.com/path/thing?foo=bar")
# returns http://example.com/abc.png
Run Code Online (Sandbox Code Playgroud)
有规范的方法吗?
在这个网站上,我看到了python和c#的很好的例子,让我们得到一个PHP解决方案.
我无法从相对URL构建绝对URL而无需使用String hackery ...
特定
http://localhost:8080/myWebApp/someServlet
Run Code Online (Sandbox Code Playgroud)
方法内部:
public void handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
Run Code Online (Sandbox Code Playgroud)
什么是最"正确"的建设方式:
http://localhost:8080/myWebApp/someImage.jpg
Run Code Online (Sandbox Code Playgroud)
(注意,必须是绝对的,而不是相对的)
目前,我是通过构建字符串来实现的,但必须有更好的方法.
我查看了新URI/URL的各种组合,我最终得到了
http://localhost:8080/someImage.jpg
Run Code Online (Sandbox Code Playgroud)
非常感谢
我相信Java的URI.resolve方法的定义和实现与RFC 3986第5.2.2节不兼容.我知道Java API定义了该方法的工作方式,如果它现在被更改,它会破坏现有的应用程序,但我的问题是:任何人都可以确认我的理解这个方法与RFC 3986不兼容吗?
我正在使用这个问题中的示例:java.net.URI仅针对查询字符串进行解析,我将在此处复制:
我正在尝试使用JDK java.net.URI构建URI.我想附加一个绝对URI对象,一个查询(在String中).例如:
URI base = new URI("http://example.com/something/more/long");
String queryString = "query=http://local:282/rand&action=aaaa";
URI query = new URI(null, null, null, queryString, null);
URI result = base.resolve(query);
Run Code Online (Sandbox Code Playgroud)
理论(或我认为)是决心应该回归:
http://example.com/something/more/long?query=http://local:282/rand&action=aaaa
Run Code Online (Sandbox Code Playgroud)
但我得到的是:
http://example.com/something/more/?query=http://local:282/rand&action=aaaa
Run Code Online (Sandbox Code Playgroud)
我对RFC 3986第5.2.2节的理解是,如果相对URI的路径为空,那么将使用基URI的整个路径:
if (R.path == "") then
T.path = Base.path;
if defined(R.query) then
T.query = R.query;
else
T.query = Base.query;
endif;
Run Code Online (Sandbox Code Playgroud)
并且仅当指定了路径时才是要与基本路径合并的相对路径:
else
if (R.path starts-with "/") then
T.path = remove_dot_segments(R.path);
else
T.path = merge(Base.path, R.path);
T.path = remove_dot_segments(T.path);
endif; …Run Code Online (Sandbox Code Playgroud) 是否有一种方法可以将Mechanize相对链接对象转换为包含绝对URL的另一个对象.
Mechanize必须知道绝对链接,因为我也可以click在相对链接上调用该方法.
我需要实现函数来检查路径和URL是相对的,绝对的还是无效的(语法上无效 - 不管资源是否存在).我应该寻找的案件范围是什么?
function check_path($dirOrFile) {
// If it's an absolute path: (Anything that starts with a '/'?)
return 'absolute';
// If it's a relative path:
return 'relative';
// If it's an invalid path:
return 'invalid';
}
function check_url($url) {
// If it's an absolute url: (Anything that starts with a 'http://' or 'https://'?)
return 'absolute';
// If it's a relative url:
return 'relative';
// If it's an invalid url:
return 'invalid';
}
Run Code Online (Sandbox Code Playgroud) relative-url ×10
url ×4
html ×3
http ×2
https ×2
java ×2
php ×2
anchor ×1
cdn ×1
href ×1
html5 ×1
hyperlink ×1
javascript ×1
mechanize ×1
query-string ×1
resolveurl ×1
rfc3986 ×1
ruby ×1
terminology ×1
uri ×1