基本src的Grunt相对路径以提高效率

时间:2017-01-28 22:12:35

标签: gruntjs relative-path

所以,我一直在努力优化我的网站。现在,我有一个非常好的模板。它看起来像这样:

<!doctype html>
<html class="no-js" lang="">
<head>
    <!-- shiny optimizations -->
    ...
    <!-- Ooh look! An important example that will help you understand my question! -->
    <link rel = "stylesheet" href = "release/base/css/normalize.css">
    include "page/head.html"
</head>
<body>
    include = "page/body.html"
</body>
</html>

因此,在每个页面中,它都包含以下内容

  • / release:放置缩小的压缩文件的目录
  • / source:源文件
  • 的目录

现在,我有一个名为/ base的目录(在根目录中),它包含优化和其他闪亮的东西,比如规范化,浏览器兼容性等等。

Base将在所有项目中保持不变,模板文件也是如此,但项目的位置将会改变。例如,采用以下文件结构。

base
    favicon.ico
    /css
        ...
    /js
        ...
source
    ...
release
    ...
foo
    /release
        ...
    /source
        ...
    index.html
    /foobar
        /release
            ...
        /source
            ...
        index.html
bar
    /release
        ...
    /source
        ...
    index.html
baz
    /release
        ...
    /source
        ...
    index.html

所以baz,bar和foo需要通过

引用优化
../base

Foobar需要通过

引用它
../../base

root只需要通过

base

因此根据深层文件的数量,我想从

更改它
<link rel = "stylesheet" href = "{changeMeBasedOnFileDeepness}/base/css/normalize.css">

<link rel = "stylesheet" href = "../../../base/css/normalize.css">

tl; dr:我想允许文件从任何地方引用基本目录。

这是在github页面上完成的,您可以查看仓库here

干杯,

TheGenieOfTruth

1 个答案:

答案 0 :(得分:0)

原来这是一个XY问题。我需要做的就是得到一些看起来像这样的闪亮符号:

/base/css/...

那即将变得痛苦复杂

简而言之:

使用网络服务器时,/foo/bar表示法会将您带到根目录