【问题标题】:Attaching a stylesheet with dirname(__FILE__) won't work even though the file is there即使文件存在,使用 dirname(__FILE__) 附加样式表也不起作用
【发布时间】:2010-12-16 20:18:01
【问题描述】:

我有一个 PHP 类,它为我的 html 文件创建标题。它被包含在内,并且该文件再次被包含。所以我认为 dirname(__FILE__) 函数可以工作。但它说找不到样式表..

我在 os x 上使用 mamp,当我将从 dirname(__FILE__)./../stylesheets/stylesheet.css 获取的路径放入终端时,找到了文件。我很确定路径是正确的。

这可能是什么原因?当我包含文件时,我一直使用dirname(__FILE__),这很有效..

谢谢

编辑: 文件和目录: /data/main.php /stylesheets/stylesheet.css /public/index.php 在 main.php:
公共函数 createHeader(){ `$stylesheetpath = 目录名(__FILE__) 。 “/../stylesheets/stylesheet.css”;` `$header = "\n";` 返回$标头 }

【问题讨论】:

  • 能否请您粘贴一些代码,以便我们为您提供帮助...通常应该可以

标签: php relative-path


【解决方案1】:

相对路径应该没问题。

<LINK REL=StyleSheet HREF="../stylesheets/stylesheet.css" TYPE="text/css">

这里的绝对路径是相对于文档根目录的绝对路径,而不是文件系统。

dirname(__FILE__) 适用于在服务器端包含脚本文件,但不适用于客户端使用的路径。简单地说,链接标签是一个指令,让浏览器继续请求该文件。

【讨论】:

  • "dirname(FILE) 适用于在服务器端包含脚本文件,但不适用于客户端使用的路径。"谢谢不知道! :)
【解决方案2】:

从你的文件结构来看,/stylesheets/ 是公众无法访问的,它必须放在/public/ 文件夹中,以便浏览器检索文件:

/data/main.php
/public/stylesheets/stylesheet.css
/public/index.php

即使文件main.php正在工作,浏览器正在查看的文件是index.php,所以相对路径是stylesheets/stylesheet.css

【讨论】:

    【解决方案3】:

    编辑:错误地阅读问题...

    使用

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

    对于CSS

    【讨论】:

      【解决方案4】:

      这是 Mac OSX 上 partial case-sensitivity 的问题吗?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-18
        • 1970-01-01
        • 2023-04-09
        • 2015-02-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-05
        • 2021-01-03
        相关资源
        最近更新 更多