【问题标题】:HTML5Boilerplate build script CSS reference in PHP filePHP 文件中的 HTML5Boilerplate 构建脚本 CSS 参考
【发布时间】:2012-04-08 15:07:40
【问题描述】:

我正在尝试使用 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 文件中的 cmets,所以我知道构建脚本不会跳过该文件。

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

    <!-- 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">

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

【问题讨论】:

    标签: html5boilerplate


    【解决方案1】:

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

    这是来自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 样板的更新和发布来验证您的应用程序的风险。

    【讨论】: