【问题标题】:Configuring develop and production enviroment in webroot path on CAKEPHP 3.X在 CAKEPHP 3.X 的 webroot 路径中配置开发和生产环境
【发布时间】:2017-03-17 13:23:52
【问题描述】:

我希望使用 Sass、uminified js 和 jams 等源文件以及使用 gulp 编译的生产文件创建子文件夹。

我的结构是

  • /webroot
    • master/develop 文件夹(sass、jade ecc)
    • app/ //生产文件夹(缩小的css ecc)

我认为我可以在 app.php (?) 中设置一个变量来设置我是否在开发或生产中并在 src/Template/Layout/default.cpt 文件中调用它来定义从哪个路径使用

if( {isDevelop} ){ <?= $this->Html->css('master/css/cake.css') ?> }else{ <?= $this->Html->css('app/css/main-style.min.css') ?>

我该怎么办?最好的方法是什么?
谢谢

【问题讨论】:

    标签: php css cakephp cakephp-3.0 filepath


    【解决方案1】:

    改善 Gransfall 答案的最佳方法是检查调试级别。

    debug true 用于开发模式,debug false 用于生产模式。

    您可以在以下位置更改此值:config/app.php

    您可以这样做,例如,在您的appController

    use Cake\Core\Configure;
    
    public function beforeFilter(Event $event) {
        $this->set('isDevelop',0);
    
        if(Configure::read('debug')) {
            $this->set('isDevelop',1);
        }
    }
    

    【讨论】:

      【解决方案2】:

      例如,你可以在你的 appController 中做

      public function beforeFilter(Event $event)
      {
      
          if($this->request->env('SERVER_ADDR') == '127.0.0.1')
          {
              $this->set('isDevelop',1);
          }
          else
          {
              $this->set('isDevelop',0);
          }
      }
      

      否则,您可以使用配置变量在 config 文件夹中的引导文件中执行此操作...

      你的选择

      【讨论】:

      • 你不应该直接使用 CakePHP 访问超全局变量,这会在某些时候困扰你,尤其是在运行测试时。请改用env() 或请求对象!话虽如此,这样的检查并不是一个好主意,依赖用户 IP 有点不稳定(例如,该值在 CLI 上会是什么样子?)。最好从环境变量或环境特定配置(文件)中检索环境详细信息。
      • @ndm 我不知道蛋糕中的 env 对象,谢谢你的知识;)
      猜你喜欢
      • 2011-03-16
      • 2018-06-04
      • 2018-03-27
      • 1970-01-01
      • 2015-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-29
      相关资源
      最近更新 更多