为脚本链接指定 HTML 目录的根路径?
Posted
技术标签:
【中文标题】为脚本链接指定 HTML 目录的根路径?【英文标题】:Specify a Root Path of your HTML directory for script links? 【发布时间】:2011-08-08 11:16:52 【问题描述】:我正在为 Dreamweaver 编写模板,并且不想更改子文件夹页面的脚本。
有没有办法让路径相对于根目录?
例如:
<link type="text/css" rel="stylesheet" href="**root**/style.css" />
我想要一个默认路径,而不是上面的**root**
。有没有办法做这样的事情?
【问题讨论】:
【参考方案1】:只是以斜线开头?这意味着根。只要您在 Web 服务器(例如 localhost)而不是文件系统(例如 C:) 上进行测试,那么您需要做的就是全部。
【讨论】:
嗯?不就是检查本地文件夹吗? 不,那将是./或什么都没有。 你在windows上吗?设置像 XAMPP 这样的本地 Web 服务器非常容易。但是,如果您只想要客户端功能,您可以使用 DOS 命令 SUBST 将您的根文件夹放在它自己的虚拟驱动器号上:例如SUBST W: c:\myprojects\projectx\wwwroot - 然后你可以只拥有 href="/style/style.css" (或者 style.css 位于你的文件夹结构中的任何位置 - 加载资源管理器并查看 W:) 中的内容。然后在浏览器中加载 W:\folder\index.html(有些浏览器会将其重写为 file:///W:/folder/index.html)。 是的,我在 Windows 上-我只想从 Dreamweaver 模板中进行编辑并检查我的进度,而不必将其保存到服务器上 50000 次 那么,您是否尝试过 subst 命令,以便您可以在计算机上的 W: 下看到您的站点?【参考方案2】:要相对于根目录,只需将 URI 以 /
开头
<link type="text/css" rel="stylesheet" href="/style.css" />
<script src="/script.js" type="text/javascript"></script>
【讨论】:
然后添加它所在的子文件夹! /subfolder/script.js! html 文件在 site/folder/index.html 下 css 是 site/style.css 使用 "/style.css" 不会加载子文件夹索引的 css 给定http://example.com/style.css
的样式表和http://example.com/folder/index.html
引用/style.css
的文档,那么它将正常加载。
应该可以。获得根并不难,/
就可以了。它是相对 URI 的基本特征。
@Gazow:如果您的网站不在根目录中,而是在子目录site/folder/
中,则可以使用HTML <base>
元素,如下面的回答中所述。然后,您无需在每个 URL 前添加 /site/folder/
,因为您只需在 <base>
标记的 href
属性中声明一次。【参考方案3】:
在/
之前使用两个句点,例如:
../style.css
【讨论】:
一个坏主意,因为../
不会为您提供相对于根目录的 URL,但会根据当前文件的目录而变化。【参考方案4】:
您可以使用ResolveUrl
<link type="text/css" rel="stylesheet" href="<%=Page.ResolveUrl("~/Content/table-sorter.css")%>" />
【讨论】:
这预设了用户和页面本身由 ASP.NET 解释服务器端。在预先假设这些事情时,明确说明这些假设非常重要。【参考方案5】:/
表示当前驱动的根目录;
./
表示当前目录;
../
表示当前目录的父目录。
【讨论】:
【参考方案6】:我推荐使用 HTML <base>
element:
<head>
<base href="http://www.example.com/default/">
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
在本例中,样式表位于http://www.example.com/default/style.css
,脚本位于http://www.example.com/default/script.js
。 <base>
相对于/
的优势在于它更灵活。您的整个网站可以位于域的子目录中,并且您可以轻松更改网站的默认目录。
【讨论】:
非常适合在不同的目录和路由上进行测试!【参考方案7】:这让我很奇怪。我知道不应该。为了检查我的理解,我想使用家庭关系模型进行比较。假设“你”是当前网页,以下是否正确?
<img src="picture.jpg"> In your folder with you, like a sibling
<img src="images/picture.jpg"> In your child's folder, under you
<img src="../picture.jpg"> In your parent's folder, above you
<img src="/images/picture.jpg"> In your cousin's folder
所以,上至父母,下至兄弟姐妹,下至他们的孩子 = 你的表亲,命名为“图像”。
【讨论】:
表弟类比是错误的。当您在引用的开头使用 / 时,您将指向您的 docroot。它变成了全路径寻址而不是相对寻址。【参考方案8】:作为Alexander Jank mentioned <base href="http://www.example.com/default/">
很棒。使用子域时,例如default.example.com
base 工作得很好,因为 JS 和 CSS 从所述子域加载,default.example.com
和 example.com/default
都可以访问
当使用根路径,而你的JS和CSS文件位于example.com/css
或example.com/js
时,则子域无权访问,也无法访问子域的根,除非使用base。
【讨论】:
以上是关于为脚本链接指定 HTML 目录的根路径?的主要内容,如果未能解决你的问题,请参考以下文章
在 AppEngine 的根路径上处理 _escaped_fragment_