Cakephp 3.0 ROOT变量设置错误

时间:2017-03-30 23:41:58

标签: cakephp-3.0

在库存安装和创建基本控制器之后,环境变量设置错误。

例如,ROOT设置如下:

/无功/网络/ HTML /应用程序的名字/ SRC //无功/网络/ HTML /应用程序的名字

换句话说,Apache webserver DocumentRoot正被附加到它。

为什么?

1 个答案:

答案 0 :(得分:0)

我学到的是,如果我在控制器中指定文件的绝对路径,Apache DocumentRoot会附加到ROOT变量。例如:

import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/fromEvent';
import 'rxjs/add/operator/do';

...
.catch(error => {
  let reader = new FileReader();
  let loadend = Observable.fromEvent(reader, 'loadend');
  reader.readAsText(error.blob());
  return loadend.do(() => { throw new Error(reader.result /* or whatever */); });
})

浏览器无法在/var/www/html/app/src//var/www/html/app/src/file/file.txt

位置找到该文件

然而,以下工作符合预期:

public function getFile() {
    // disable the default layout for the view
    $this->viewBuilder()->layout(false);
    $path = ROOT . '/file/file.txt';
    $this->response->file($path, array('download' => true));
    return $this->response;
}

ROOT位置似乎自动预先到达我上面设置的路径。我没有意识到这一点,也没有在文档中读到任何关于它的内容,所以我仍然不确定它为什么会这样。