__DIR__ Laravel 中只有 returns 部分路径 - 缺少一个文件夹
__DIR__ only returns part of the path in Laravel - missing one folder
我正在使用 Laradock/Docker 和 apache2 网络服务器。
localhost 指向 /Users/paul/Sites(在 Mac Monterey 上正常)
我有一个 laravel 8 项目位于 /Users/paul/Sites/ProjectX。
在 /Users/paul/Sites/ProjectX/index.php 中,我有 echo DIR;
在浏览器中,localhost/ProjectX returns /var/www/ProjectX。为什么 DIR 常量中缺少“站点”文件夹?这正常吗?
我正在扯我的头发......这看起来很微不足道,但我找不到答案......请帮忙。
这完全符合预期。
是指return当前运行脚本的绝对目录路径。
Laradock makes use of bind mounts 将 主机 上的“应用程序代码路径”(/Users/paul/Sites/ProjectX
)挂载到 docker 容器 在此“应用程序代码路径”(/var/www/ProjectX
)。这使您可以立即预览您的应用程序代码更改,而不必在每个 change/edit.
上 复制 源代码
# ...
workspace:
build:
context: ./workspace
args:
# ...
volumes:
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}${APP_CODE_CONTAINER_FLAG}
考虑到这一点,很明显这两个环境具有独立的文件系统。
当您在 主机 上的浏览器中发出 HTTP 请求时,该 HTTP 请求将“转发”到 docker container listening on that specific port。即:
# ...
ports:
- "${APACHE_HOST_HTTP_PORT}:80"
- "${APACHE_HOST_HTTPS_PORT}:443"
# ...
了解您的 HTTP 请求将由特定的 docker 容器(即 Apache/Nginx)而不是 主机处理,执行 echo __DIR__;
将导致脚本的绝对 mounted 目录路径基于 docker 容器的文件系统.
我正在使用 Laradock/Docker 和 apache2 网络服务器。
localhost 指向 /Users/paul/Sites(在 Mac Monterey 上正常)
我有一个 laravel 8 项目位于 /Users/paul/Sites/ProjectX。
在 /Users/paul/Sites/ProjectX/index.php 中,我有 echo DIR;
在浏览器中,localhost/ProjectX returns /var/www/ProjectX。为什么 DIR 常量中缺少“站点”文件夹?这正常吗?
我正在扯我的头发......这看起来很微不足道,但我找不到答案......请帮忙。
这完全符合预期。
Laradock makes use of bind mounts 将 主机 上的“应用程序代码路径”(/Users/paul/Sites/ProjectX
)挂载到 docker 容器 在此“应用程序代码路径”(/var/www/ProjectX
)。这使您可以立即预览您的应用程序代码更改,而不必在每个 change/edit.
# ...
workspace:
build:
context: ./workspace
args:
# ...
volumes:
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}${APP_CODE_CONTAINER_FLAG}
考虑到这一点,很明显这两个环境具有独立的文件系统。
当您在 主机 上的浏览器中发出 HTTP 请求时,该 HTTP 请求将“转发”到 docker container listening on that specific port。即:
# ...
ports:
- "${APACHE_HOST_HTTP_PORT}:80"
- "${APACHE_HOST_HTTPS_PORT}:443"
# ...
了解您的 HTTP 请求将由特定的 docker 容器(即 Apache/Nginx)而不是 主机处理,执行 echo __DIR__;
将导致脚本的绝对 mounted 目录路径基于 docker 容器的文件系统.