【问题标题】:PHP/IIS relative includes confusion [duplicate]PHP / IIS相关包括混淆[重复]
【发布时间】:2012-12-22 14:32:24
【问题描述】:

我想知道这种设置是否可行,因为我在设置时遇到了很多麻烦。我正在尝试建立一个具有如下文件结构的网站:

  • project1(文件夹)
    • index.php
    • style.css
    • include.php
      • 管理员(文件夹)
        • index.php

父“project1”文件夹位于 D:\Projects\project1 中的“server1”上。

通过虚拟目录“http://server1/project1”访问网站。

我希望能够以“/style.css”格式编写包含、图像 src、样式表等的所有路径,以便无论在哪里都可以找到这些文件。例如。以下链接无论是放在“project1”文件夹还是“admin”文件夹中都应该有效:

<link rel="stylesheet" type="text/css" href="/style.css">

编辑: 正如mellamokb 建议的那样,使用 href="/project1/style.css" 似乎适用于两个 'index.php' 文件。但是我似乎无法为 PHP INCLUDE 找到类似的解决方案。

如果我用这个...

<?php include_once '/include.php'; ?>

...在两个 index.php 文件中,admin 目录中的那个都找不到该文件。

我预计 $_SERVER['DOCUMENT_ROOT'] 会返回“D:\Projects\project1”,但它会返回 D:\staging,我不知道为什么。我尝试了几种设置项目“root”的不同方法,但我最终让自己更加困惑!项目的虚拟根目录应该是“http://server1/project1”,物理根目录应该是 D:\Projects\project1,但我不知道如何强制。

【问题讨论】:

  • admin 的虚拟目录路径是什么?如果 admin 是 http://server/ 的虚拟子目录,则根相对路径 /style.css 应该可以工作。
  • 'admin' 只是一个子文件夹 - 我需要将其设置为单独的虚拟目录吗?
  • 如果您导航到http://server1/project1/admin/index.php,浏览器将对/style.css 的引用解析为http://server1/style.css,这似乎是正确的。你试过这个有问题吗?
  • 是的,如果我导航到http://server1/project1/admin/index.php,firefox 会返回错误——GET http://server1/style.css [HTTP/1.1 404 Not Found 0ms] 错误是正确的,因为'style.css' 位于http://server1/project1,而不是http://server1/跨度>
  • 哦。然后使用/project1/style.css,或者将资源文件放在一个普通的虚拟文件夹中,比如/resources/style.css

标签: php sql sql-server-2005 iis-6


【解决方案1】:

您可以创建一个包含常量的文件,并因此拥有define('BASE_URL', "http://server1/project1/")。然后您可以使用常量变量BASE_URL 相对地工作,

<link rel="stylesheet" type="text/css" href="<?php echo BASE_URL; ?>style.css">

您还可以通过附加“相对”地址来处理其他文件。

include (BASE_URL . '<file you want to add>');

【讨论】:

  • 这很好用,但是我想我问错了问题。您的方法在链接样式表等时解决了我的问题,但是当我尝试通过 PHP INCLUDE 包含文件时,我正在努力寻找一种通用方法来确保它可以找到文件
  • 此外,我对样式表也有同样的问题,例如背景:url('/Images/background.png') 不能从常量方法中受益:(
  • 好的...我明白了问题所在。请构建您的文件夹,使相关资源彼此靠近。如果 'Images' 文件夹与 style.css 位于同一目录中,只需执行 background: url('Images/background.png')
猜你喜欢
  • 2015-06-19
  • 2013-04-29
  • 1970-01-01
  • 1970-01-01
  • 2010-10-12
  • 1970-01-01
  • 1970-01-01
  • 2015-03-29
  • 1970-01-01
相关资源
最近更新 更多