为脚本链接指定 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 &lt;base&gt; 元素,如下面的回答中所述。然后,您无需在每个 URL 前添加 /site/folder/,因为您只需在 &lt;base&gt; 标记的 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 &lt;base&gt; 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&lt;base&gt; 相对于/ 的优势在于它更灵活。您的整个网站可以位于域的子目录中,并且您可以轻松更改网站的默认目录。

【讨论】:

非常适合在不同的目录和路由上进行测试!【参考方案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 &lt;base href="http://www.example.com/default/"&gt; 很棒。使用子域时,例如default.example.com base 工作得很好,因为 JS 和 CSS 从所述子域加载,default.example.comexample.com/default 都可以访问

当使用根路径,而你的JS和CSS文件位于example.com/cssexample.com/js时,则子域无权访问,也无法访问子域的根,除非使用base。

【讨论】:

以上是关于为脚本链接指定 HTML 目录的根路径?的主要内容,如果未能解决你的问题,请参考以下文章

从 TypeScript 中的根路径导入模块

如何在运行时执行期间获取Intellij的根项目目录

在 AppEngine 的根路径上处理 _escaped_fragment_

Symfony 4,从自定义类(不是控制器类)获取项目的根路径

[NodeJs] 如何获取项目的根路径?

为啥我的控制器中的根路径映射到 Spring Boot Web 应用程序中的 index.html?