1

我有一个名为“header.php”的文件,我包含在我网站上的每个页面上,并且该文件包含指向我服务器上其他文件的链接,例如 css 文件、jquery 插件等。现在我正在使用绝对路径这些链接,因此它们将使用与 header.php 文件不在同一目录中的文件,这有效,但正如您在下面的示例中所见,如果您使用 header.php 文件,事情开始变得非常难以管理包含很多链接(我的链接)所以我想知道是否有任何其他替代方法可以像我在这里所做的那样在 header.php 文件中使用绝对路径。

头文件.php

<? 
 $base_url = "http://example.com";
?>
    <html>
      <head> 
       <title> <? echo($title); ?> </title>

        <link rel="stylesheet" type="text/css" href="<? echo($base_url); ?>/styles/some_css_file.css" media="all"/>
        <link rel="stylesheet" type="text/css" href="<? echo($base_url); ?>styles/another_css_file.css" media="all"/>
        <link rel="stylesheet" type="text/css" href="<? echo($base_url); ?>styles/another_css_file.css" media="all"/>
        ...
        ...
        ...

        <script type="text/javascript" src="<? echo($base_url); ?>/scripts/jquery-1.7.2.min.js"></script>
        <script type="text/javascript" src="<? echo($base_url); ?>/scripts/some_jquery_plugin.js"></script>
        <script type="text/javascript" src="<? echo($base_url); ?>/scripts/another_jquery_plugin.js"></script>
        ...
        ...
        ...
      </head>

一些包含 header.php 的文件

<? 
  $title = "some page title";
  include("header.php"); 
?>

      <body>
        PAGE CONTENTS
      </body>
    </html>
4

4 回答 4

1

绝对路径是去这里的方式。但是,如果您有很多要打印的链接,可以通过将路径存储在数组中并循环遍历数组来简化它。

$base = "http://www.example.com/"
$links = array( "styles/file1.css", "styles/file2.css", ... );

foreach ( $links as $link ) {
    echo '<link rel="stylesheet" href="' . $base . $link . '" type="text/css" media="all" />';
}

作为旁注,你所拥有的并不是很好的练习。尝试合并其中一些文件会更好、更高效,因为这将减少浏览器必须向服务器发出的 HTTP 请求数量。http://developer.yahoo.com/performance/rules.html#num_http

于 2012-06-22T21:48:07.330 回答
1

使用 HTML 基础标记来定义站点的基础。

<base href="<?php echo $base_url; ?>" />
<link rel="style.css" />
于 2012-06-22T21:44:25.627 回答
1

我在我的一个项目中也有同样的疑问,我已经按照下面的代码完成了。由于路径以“/”开头,文件将在根目录中找到,在这种情况下无需指定域,如果您要重写 URL,它将使事情变得更容易维护并防止出现问题使用(mod_rewrite)。希望它也能帮助到你!

<html>
  <head> 
   <title> <? echo($title); ?> </title>

    <link rel="stylesheet" type="text/css" href="/styles/some_css_file.css" media="all"/>
    <link rel="stylesheet" type="text/css" href="/styles/another_css_file.css" media="all"/>
    <link rel="stylesheet" type="text/css" href="/styles/another_css_file.css" media="all"/>

    <script type="text/javascript" src="/scripts/jquery-1.7.2.min.js"></script>
    <script type="text/javascript" src="/scripts/some_jquery_plugin.js"></script>
    <script type="text/javascript" src="/scripts/another_jquery_plugin.js"></script>
  </head>
</html>
于 2012-06-22T21:50:47.780 回答
0

这不是您问题的直接答案,但它可能会对您有所帮助。

如果您包含那么多 css 和 JS 文件,您应该考虑使用 Minify。Minify 将获取一堆 css/js 文件并将它们压缩/组合成一个文件,这将大大加快您网站的加载速度。

使用它还可以帮助您解决路径问题,因为您可以非常轻松地指定目录和组。

您可以在此处找到有关它的信息: 缩小

于 2012-06-22T21:45:56.380 回答