Php 致命错误:require():无法打开require
我有一个目录,子目录如下Php 致命错误:require():无法打开require,php,path,Php,Path,我有一个目录,子目录如下 +task +Include +vendor - autoload.php +Theme +action - doInsert.php +objects - CardAccessor.php 当我试图在CardAccessor.php中调用autoload.php时出现了错误 require '/../include/vendor/autoload.php'; doInsert.php re
+task
+Include
+vendor
- autoload.php
+Theme
+action
- doInsert.php
+objects
- CardAccessor.php
当我试图在CardAccessor.php中调用autoload.php时出现了错误
require '/../include/vendor/autoload.php';
doInsert.php
require_once '../objects/CardAccessor.php';
CardAccessor.php
require '/../include/vendor/autoload.php';
错误是这样的:
警告:require/./include/vendor/autoload.php:无法打开流:没有这样的文件或目录
致命错误:require:无法打开required'/../include/vendor/autoload.php'
require“/../include/vendor/autoload.php”不起作用,您需要删除第一个斜杠。在编写时,第一个斜杠告诉它去根目录,然后从那里往上一个它不能做的,它已经在根目录了
考虑到您的目录结构,我认为require“../../include/vendor/autoload.php”应该可以工作。执行include时,路径总是相对于包含该文件的文件
您需要放置的是require“../../Include/vendors/autoload.php”或设置完整路径,如require“/my/project/path/task/Include/vendor/autoload.php”
这与您的问题有关:您需要定义一个配置 如果这是linux unix,请使用
$baseDir = "/base/dir"; //to define where in the root filesys where youre scripts and assets live
然后使用
$baseDir."/task/Include" or
$baseDir."/task/Theme/objects/CardAccessor.php" or
$baseDir."/task/include/vendor/autoload.php"
或者您可以创建
$sourceDir = $baseDir."/task/";
这也用于可移植性,如果您决定移动源,您可以修改配置;此外,这是在脚本中包含或需要文件的有效方法。文件/./include/vendor/autoload.php不存在。请尝试使用require'../include/vendor/autoload.php';我已经尝试了../Include/vendor/autoload.php,但仍然不起作用。我只是再次查看了目录结构。您需要升级两个级别,即.././include/vendor/autoload.php。我正在编辑我的答案以匹配。