- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
TL;DR:当尝试使用包含在 PHP 的 include
命令中的页面上的相关链接时,有哪些替代方法可以替代此页面上的最后一个代码示例?
我正在尝试 include()
一个链接到 .css
文档的文件,问题是我需要从多个(不同的)文件中包含这个文件目录。我的目录结构看起来有点像这样:
www
├── (getpath.php)
│
├── css
│ └── style.css
├── php
│ └── header.php
└── content
├── index.php
└── posts
└── index.php
(我在两个 index.php
文件中都包含了 header.php
。header.php
是引用 的文件>style.css
(浏览器需要能够找到)。示例:当使用 ../css/style.css
时,CSS 将显示在我的 中content/index.php
但不在我的 content/posts/index.php
中,因为浏览器正在寻找 content/css/index.php
。)
该网站在放置在文档根目录的子目录 中时也应该可以正常工作,而不是在文档根目录本身中。出于这个原因,我不能只使用 /css/style.css
(相对于服务器根)来链接到我的 CSS 样式表。
我认为(如果我错了请纠正我!)告诉浏览器在哪里可以找到 CSS 文档的最简单方法可能是指定相对于文档的路径根。因为我希望我的网站位于文档根目录的 子目录 中(并且希望避免使用 config
文件来存储子目录),所以我需要找出网站所在子目录的相对路径。我的想法是将一个名为 getpath.php
的文件放在我网站的根目录(而不是文档根目录)中。在该文件中,我写了以下内容:
<?php
define('PROJECT_SUBDIRECTORY', $_SERVER['PHP_SELF']);
?>
但是,我注意到这给了我用户在浏览器中请求的 PHP 文件的相对目录(例如 content/index.php
),而不是包含的文件(getpath .php
).我还了解到 PHP_SELF
基于 REQUEST_URI
,这并不安全。我找到了这个解决方案 here :
define('PROJECT_DIR', preg_replace('/^' . preg_quote($_SERVER['DOCUMENT_ROOT'], '/') . '/', '', __DIR__));
它工作得很好,但我想知道是否有“更好”的方法来做到这一点。我没能为此找到一个变量——上面的解决方案真的是唯一的方法吗?
我应该使用前面的代码示例还是有更好的方法?
我应该更改我的目录结构吗?其他人是如何解决这个问题的?
编辑:我的网络服务器上有多个(完全独立的)网站,它们都在文档根目录的子目录中(如 /documentroot/project1/
,/documentroot/project2/
, ...)
我试图让网站在子目录中工作。我显然可以通过 /css/style.css
将 CSS 发送到浏览器,但如果网站位于子目录中,那将不起作用。我还想避免使用配置文件来指定我的项目相对于文档根目录的路径。
另一个编辑:问题是我的项目 /documentroot/project1
中的每个 php 文件都包含一个导航栏,方法是使用 PHP 的 include
函数.导航栏保存为 /documentroot/project1/php/header.php
,导航栏的 css 保存为 /documentroot/project1/css/style.css
。当使用相对链接(告诉浏览器 style.css
在哪里)时,浏览器仍然认为路径是相对于 index.php
而不是 header.php
,因此它会在与 index.php
.
相同的目录中搜索 CSS问题:不同目录中有多个 index.php 文件,我不想将我的 CSS 文件夹复制并粘贴到包含 index.php
文件的每个目录中。
最佳答案
我过去所做的是使用这样的设置:
define('DIR_BASE', dirname( __FILE__ ).'/');
define('DIR_SYSTEM', DIR_BASE.'app/');
etc.
这将放置在项目的文件根目录中,这将使您能够访问相对于根目录的文件结构的其他区域。
对于您的情况,它看起来像这样:
define('DIR_BASE', dirname( __FILE__ ).'/');
define('DIR_CSS', DIR_BASE.'css/');
define('DIR_PHP', DIR_BASE.'php/');
define('DIR_CONTENT' DIR_BASE.'content/');
这将进入您的根目录中的 getpath.php,并使您能够引用任何文件或目录,而不管它在目录结构中的位置(请确保在您将使用它们的任何地方包含它) .你不需要改变你的目录结构或类似的东西,你不必担心这样的东西的任何漏洞,因为它是内部的。
编辑我不断回到系统的结构。这是一个使用相同 CSS 的多站点系统吗?如果不是,那么这样布置目录结构的理由是什么?能否提供更多细节?
关于php - 当前 PHP 脚本相对于文档根目录的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22313783/
我正在使用 prestashop,在主题中我添加了自己的目录,里面有一个样式表 然后我在 header.tpl 中链接了样式表 例如 但是,如果我在子目录中安装 prestashop,例如 www.
我有以下目录结构: C:\mywebsites \site_1 \site_2 \site_n 在“site_2”中,我安装了 joomla,但是,我在“额外”文件夹之一中有其他文件夹,其
我有一个家庭作业,要求我使用 bash 脚本在 Linux 终端中打印某些内容。我已经完成了其中的大部分,但我被困在我需要做的最后一件事上......这就是我的教授的措辞 Checks to see
通过 Windows Batch,删除文件夹的所有子目录和子文件而不删除/删除所述父/根文件夹的命令是什么? 到目前为止,这是我尝试过的: ECHO "Good riddance, cache! Mu
我正在将 OpenCV 用于各种对象检测器,但我发现很难编写可移植代码。 例如,要在通过自制软件安装了 OpenCV 的 Mac 上加载人脸检测器,我必须这样写: haar=cv.Load('/usr
目录树的主要部分有root(/)、/USR、/var、/home等等。下面是一个典型的linux目录结构如下: / 根目录 /bin 存放必要的命令 /boot
我被这个非常愚蠢的错误所困扰。我正在尝试使用 bluepy 在 Raspberry Pi 上运行 pytest。 pi@pi:~/bluepy/bluepy $ pytest test_asdf.py
我在 Ubuntu 14 上安装了 MediaWiki,该站点的 URL 为:www.wiki.example.com/mediawiki/ 但是我想将位置更改为 www.wiki.example.c
我已经阅读了文档,但有些事情仍然让我感到困惑,主要与同步文件夹和数据库数据有关。 我想在我的主机上使用以下文件夹结构 ROOT |- workFolder ||- project1 |||- proj
我想在我的 Azure webrole 启动时授予网络服务帐户修改权限(根项目目录),有人知道这样做的方法吗?修改后,我会重置该值以确保安全。主要目的是我需要修改 webconfig 以根据多个节点上
我需要作为自定义构建器的一部分按顺序运行两个程序。 其中一个程序我被困住了,无法处理绝对/相对路径,因此我必须使用构建器的 chdir=1 选项才能运行其操作与目标位于同一目录中。 第二个是位于项目的
Cmake的安装命令 install(TARGETS MyTarget LIBRARY DESTINATION lib) 要求我将共享库安装到子文件夹中。似乎 LIBRARY DESTINATION
我正在尝试运行这个: string webRoot = "http://www.dev/api"; string apiRoot = "http://api.dev"; string path = "
在 android 中,我可以使用以下方法获取手机的可移动外部存储: for (File f : context.getExternalFilesDirs("/")) if (Environm
当我启动 tomcat 时,它从 localhost:8080/开始服务。我希望它从 localhost:8080/aaa 开始服务。我不想用“aaa”webapp 替换“root”webapp,我希
我想在按下按钮时向页面顶部的根 html 标记添加一个类。我遇到的唯一代码是将类添加到具有 id 的 div 元素。 Untitled Document 开始演示 我尝试修改这段代码,但没
我希望了解 ROOT 的 TTreeReader 和 TVector3 类的人可以帮助我。 我正在尝试使用 TTreeReader 读取包含 TVector3 的 TTree。 class MuseS
我已经从已经运行并安装在我本地的服务器上下载了 prestashop 文件选择了默认主题,但未应用任何样式表例如,当我通过 Firebug 检查时,样式表路径是错误的我有 http://localho
我有一个脚本,用于搜索包含特定文件的目录,从当前目录开始向上爬(想想试图找出 .git 目录所在的位置)。 我的方法是这样的: def getDir(self,cwd): path = os.pa
我需要 检查当前目录是否在Git版本控制下 如果是 Git 根目录 在单行 shell 脚本中执行上述操作,成功时应以 0 退出 最佳答案 使用 git-rev-parse 是可行的方法。只需确保将其
我是一名优秀的程序员,十分优秀!