1

我正在尝试使用 Html5Boilerplate 构建我的网站,并且大多数情况下它都按我的意愿进行。但是,我仍然无法在我的 PHP 文件中更新 CSS 引用。

我的文件夹结构如下:

    css/style.css
    page/header.php

现在在 header.php 文件中我有:

    <!-- scripts concatenated and minified via ant build script-->
        <link rel='stylesheet' href='css/style.css'/>
    <!-- end scripts-->

我希望构建的 header.php 文件具有以下内容:

    <link rel='stylesheet' href='css/a4cd4c0.css'/>

但不幸的是,它没有更新参考。

在 project.properties 文件中,我有: file.pages = page/* 它正在剥离 header.php 文件中的注释,所以我知道构建脚本不会跳过该文件。

我尝试过各种变体,例如:

    <!-- CSS concatenated and minified via ant build script-->
        <link rel='stylesheet/css' type='text/css' href='css/style.css'/>
    <!-- end CSS-->

但这也没有起到任何作用。. .

有没有人尝试在他们的 PHP 文件中使用 Html5Boilerplate 更新他们的 CSS 文件?我可以尝试什么来让构建脚本更新引用?我的最后一个问题是:如果我使用以下行来包含我的 CSS,我可以让构建脚本更新引用吗?

    <link rel='stylesheet/css' type='text/css' href='<?PHP echo(CSS_PATH) ?>style.css'/>

编辑:通过在 build.xml 文件中摆弄,我不仅让它工作,而且我的 php echo 也能正常工作。在 build.xml 文件的第 623 行附近,我更改了以下行:

    <replaceregexp match="&lt;link rel=['&quot;]?stylesheet['&quot;]?\s+href=['&quot;]?(.*)/${file.root.stylesheet}(?:\?.*)?['&quot;]?\s*&gt;" 
        replace="&lt;link rel='stylesheet' href='\1/${css.sha}.css'&gt;" flags="m">

    <replaceregexp match="href=['&quot;]?(.*\?&gt;)${file.root.stylesheet}(?:\?.*)?['&quot;]?" 
        replace="href='\1${css.sha}.css'" flags="m">

希望这可以帮助遇到类似问题的人。

4

1 回答 1

0

根据您使用的 HTML5Boilerplate 版本,答案很可能在于删除 .htaccess 文件中专门关于“基于内置文件名的缓存清除”的注释。

这是HTML5 Boilerplate 4.1的代码部分。

`<IfModule mod_rewrite.c>
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.+)\.(\d+)\.(js|css|png|jpg|gif)$ $1.$3 [L]
 </IfModule>`

不建议编辑或修改 build.xml 文件;

  • 编辑 .htaccess 文件效率更高。
  • 您增加了无法通过 HTML5 样板的更新和发布来验证您的应用程序的风险。
于 2013-03-02T10:32:19.070 回答