【问题标题】:Include and path problem包含和路径问题
【发布时间】:2011-03-26 16:18:06
【问题描述】:
<?php
// This is index.php
ob_start();
include 'tem/u.html';
ob_end_flush();
?>

<html>
<!-- This is u.html -->
<link rel="stylesheet" href="style.css" media="screen" /> 
<body>
<p> abc </p>
</body>
</html>

现在我的问题是当我运行 h.html -> 风格正常。
但是当我运行 index.php -> Ok without style 时(因为现在 index.php 包含 style.css,而不是 tem/style.css) 需要修复

【问题讨论】:

    标签: php


    【解决方案1】:

    如果可能,请参考style.css 的域相对路径,例如

    <link rel="stylesheet" href="/style.css" media="screen" />
    

    如果这不可能,您需要以某种方式跟踪页面库,我无法告诉您,因为我对您的应用程序了解不够。但无论如何,就像

    <link rel="stylesheet" href="<?php echo $pageBase; ?>/style.css" media="screen" />
    

    其中 $pageBase 是一个变量,其中包含指向应用程序根目录的 url。

    【讨论】:

    • 如何将 url 指向我的应用程序的根目录( localhost/do -> 这是我的应用程序的根目录)。有知道$baseurl的函数吗?
    【解决方案2】:

    我假设tem 目录应该用于某种模板,因此您不希望它直接暴露给用户;相反,您希望能够包含这些文件,以便可以通过index.php 访问它们,可能还可以选择稍后更改包含的文件。

    您可以创建另一个名为style.php(在根目录中)的PHP 文件,其中包含tem/style.css。您也可以对模板使用的任何其他文件执行此操作 - 想法是根目录中的每个 PHP 文件将对应于模板中的“角色”,而不是特定的模板文件,以便模板以后可以无需重写所有内容即可更改。

    如果您的模板需要大量文件,这可能会有点麻烦,因此最好使用一个脚本来指示要加载哪个文件(通过$_GET 变量)。但在这种情况下,您需要非常小心不要让用户指定任意文件。我建议在您更加精通 PHP 之前避免使用这种方法。

    编辑:再三考虑,我建议在模板 HTML 文件中使用 &lt;base&gt; 标记,正如我对 @gnud 答案的评论中所建议的那样。

    【讨论】:

      【解决方案3】:

      这与 PHP 或 include 无关。这与您的浏览器以及 URL 的解释方式有关。

      当您的浏览器指向 http://xyz.abc/tem/h.html 并要求加载“style.css”时,它会尝试加载 http://xyz.abc/tem/style.css - 这称为相对 url,相对于当前文档位置。

      当您的浏览器位于http://xyz.abc/index.php 并被要求以相同方式加载样式表时,它会尝试http://xyz.abc/style.css。也许你看到了问题?

      至于解决方案,您可以为样式表使用域相对路径(“/tem/style.css”)。

      【讨论】:

      • 你的意思是 href="/tem/style.css" 对吧?我知道,但我在 WP 模板中看到,他们仍然使用 href="style.css" 并且一切正常。
      • @Snoob:如果这在 WP 中有效,也许他们正在使用&lt;base&gt; 标签。想想看,这比我在回答中给出的解决方案更好。
      • 是的,他们使用 bloginfo('stylesheet_url')。现在我知道该怎么做了
      【解决方案4】:

      始终使用 css 文件的绝对路径

      <link rel="stylesheet" href="/tem/style.css" media="screen" />
      

      就是这样

      【讨论】:

        猜你喜欢
        • 2013-11-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-16
        • 2012-05-05
        • 2018-01-13
        • 2011-08-14
        相关资源
        最近更新 更多