【问题标题】:How to use grunt-usemin in PHP projects?如何在 PHP 项目中使用 grunt-usemin?
【发布时间】:2014-03-22 16:22:09
【问题描述】:

所有关于使用 grunt 和 grunt-usemin 优化网站资产的教程都是基于 src -> dist 部署策略。基本上处理你src文件夹中的项目并将它们编译到dist文件夹中。

但是 PHP 不是这样工作的。它没有被编译和“分发”。源页面和目标页面相同。这使它成为一个破坏性的过程。

您如何解决这个问题?一般在 PHP 项目中使用 Grunt 有什么技巧吗?

谢谢。

【问题讨论】:

    标签: php gruntjs grunt-usemin grunt-contrib-concat


    【解决方案1】:

    我们做类似的事情。我们使用未最小化的源创建了一个 index.src.html,并使用 usemin 从这个文件创建了一个 index.html,我们有一个“代理”php 文件,如果 index.html 存在则打开它(这意味着我们是在生产环境中并且资产已构建),否则如果资产尚未构建或我们处于开发环境中,则为 index.src.html。主要思想是将 usemin 的重要部分分离到不同的文件中。

    【讨论】:

      【解决方案2】:

      usermin 插件用于准备静态资产(连接、最小化、...)。静态意味着服务器为每个人提供相同的内容。此约束不适用于 PHP...

      如果您想使用此工具来优化您的 php 生成的页面资产,您应该创建可由 usermin 解析的输入文件。例如,您可以将 javascript/css 文件引用收集到模板或不同的 php/html 中,并在需要的地方包含/使用此文件,并在构建后使用 usermin 解析的版本。

      【讨论】:

      • 我的资产是静态的。我只是将它链接到一个 PHP 文件中(比如说:template.php)。 usemin 就像你说的那样工作。但它也会将 template.php 中的链接更改为优化版本。这很好,但不好,因为它改变了 template.php 中的标记。我希望你明白我的意思。对不起,如果我对那个解释不太清楚。
      • 我们做类似的事情。我们使用非最小化的源创建了一个 index.src.html,并使用 usemin 从这个文件创建了一个 index.html,我们有一个“代理”php 文件,如果它存在则打开 index.html(这意味着我们是在生产环境中并且资产已构建),否则如果资产尚未构建或我们处于开发环境中,则为 index.src.html。主要思想是将对 usemin 重要的“事物”分离到不同的文件中。
      • 现在更有意义了。我必须要求我的后端开发人员这样做。可以在 CodeIgniter(或类似框架)中完成吗?
      • 我已经和我的开发人员讨论过这个问题。他们说这是可以做到的。您能否再次发表您的评论作为不同的答案,以便我接受。
      • 我发布了一个新答案。
      【解决方案3】:

      理想的方法是利用 PHP 的动态特性来进行“分发”URL 替换。该过程将是:

      【讨论】:

        猜你喜欢
        • 2013-07-22
        • 1970-01-01
        • 2013-12-29
        • 2014-07-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多