如何解析html中的路径得到最终的url呢?
访问http://localhost:3000/dist/index.html
这里的index.html
会通过script
和link
标签导入需要的js
和css
。
<script type="module" crossorigin src="/assets/index-BgnkCtKv.js"></script> <link rel="stylesheet" crossorigin href="/assets/index-Dm30hxWm.css" />
浏览器解析到这段html时,会发送两个http请求,url为
http://localhost:3000/assets/index-BgnkCtKv.jshttp://localhost:3000/assets/index-Dm30hxWm.css
为什么不是
http://localhost:3000/dist/assets/index-BgnkCtKv.jshttp://localhost:3000/dist/assets/index-Dm30hxWm.css
如果我将地址改为相对地址的形式./assets...
,得到的url还是没有变化。
我使用serve
这个静态服务器的时候,使用了./assets..
或者assets/..
这种相对地址形式,最终的url
依然为/assets....
。
但是我使用servor
这个静态服务器的时候,被解析为/dist/assets...
。
解析的工作不是在浏览器上进行的吗?和使用什么静态服务器有什么关系?上面的行为让人匪夷所思。
我在stacblitz上复现了该问题
npm start
(使用servor
作为服务器),访问/dist/index.html
成功。npm run dev
(使用serve
作为服务器),访问/dist/index.html
报错(/index.css
没不存在)。这部分可以从 MDN 文档中去了解 #绝对 URL 和相对 URL - 什么是 URL? - 学习 Web 开发 | MDN
简单的总结就是:
/
” 字符开头,则浏览器将从服务器的顶部根目录获取该资源,而不引用当前文档给出的上下文/
开头,浏览器将尝试在包含当前资源的子目录中查找文档。 如果我们当前处于 https://developer.mozilla.org/zh-CN/docs/Learn
的页面上,那么:
/zh-CN/docs/Learn
这种开头是 /
的绝对地址,那么浏览器会自动处理成 https://developer.mozilla.org/zh-CN/docs/Learn
Skills/Infrastructure/Understanding_URLs
这种开头没有 /
的地址,那么浏览器会处理成 https://developer.mozilla.org/zh-CN/docs/Learn/Skills/Infrastructure/Understanding_URLs
../CSS/display
这种相对路径,那么浏览器会在当前页面路径上往上退回一个目录,处理成 https://developer.mozilla.org/zh-CN/docs/CSS/display
(https://developer.mozilla.org/zh-CN/docs/Learn/../CSS/display
的简化版本)示例部分MDN文档中也有解释,可以直接看文档。
我觉得你需要看一下脚手架关于 base
部分的文档,你就知道为什么 npm run dev
的时候,你请求 /dict/css/style.css
为什么是 404
了。
src="/assets/index-BgnkCtKv.js">
这种以/
开头的,会使用根目录。即http://localhost:3000
改成这种assets/index-BgnkCtKv.js"
就会使用相对路径。
有一个网页 里面有这样的表述 请问,这个链接的最终指向为何是
问题内容: 我将样式表存储在{root} / styles中,将图像存储在{root} / images中。如何在样式表中提供路径以在指定图像的图像目录中查找? 例如在 问题答案: 使用指示父目录:
问题内容: 我想带一个弦 并将其处理为一个对象 和 问题答案:
问题内容: 节点中是否有类似“ path.resolve”的API?还是有什么可以做的? 例如(nodejs代码): 应该得到: 问题答案: 解决(表示用户的家)是另一回事,通常是由外壳来解决。。 如果要通过Go代码执行此操作,则可以使用该函数获取有关当前用户的详细信息,包括其主文件夹(即)。但是,您仍然必须自己替换它。 原始答案如下。 您可以使用或。 例如: 输出: 您可以使用和从路径中“删除”
问题内容: 有一个URL,如何检索其路径部分? http://www.costo.com/test1/test2 如何获得“ test1 / test2” 问题答案: 您想要这样的东西: 其实那会给你的。您只需要删除第一个即可获得所需的内容: 现在您将进入。
本文向大家介绍如何解析JavaScript中的URL?,包括了如何解析JavaScript中的URL?的使用技巧和注意事项,需要的朋友参考一下 解析URL 通过使用DOM方法而不是正则表达式来解析javascript中的URL是非常简单的。如果使用正则表达式,则代码将更加复杂。在DOM方法中,仅一个函数调用将返回已解析的URL。 在以下示例中,首先创建一个函数,然后使用DOM方法在其内部创建锚标