Yii 文件包含不起作用,而我可以通过输入 URL 来访问它


Yii file include does not work, while i can access it by typing in URL

我在包含/要求方面遇到了问题。

我在根文件中做了一个目录:

root/includes
root/includes/something.inc.php

现在我尝试将该文件包含/要求到我的 Web 应用程序中:

require(Yii::app()->baseurl.'/includes/something.inc.php');

但它说failed to open stream: No such file or directory

当我去mydomain/includes/something.php它只是工作。

为什么我不能包含/要求此文件?

Yii(1( 提供了多种指向各种路径的快捷方式。最常用的一种是 Yii::app()->baseUrlYii::app()->basePath .

这两种快捷方式用于不同的目的,并作用于不同的级别。 baseUrl表示应用程序在 Web 上可用的 URL。如果您想通过其公共 URL 链接资产和文件,则可以使用它。 basePath作用于文件系统级别。包含几乎是在文件系统级别完成的。这种不匹配是导致问题的原因。

参考:

  • 备案::$basePath
  • 备案::$baseUrl

你尝试改为:

require(Yii::app()->baseurl.'/includes/something.inc.php');

由:

require(dirname(__FILE__).'/includes/something.inc.php');