我知道它是重复的,有很多相同的问题。
我包含了多个文件,最近我启动了一个新目录,但无法使用其中的一些文件。
我想在多个目录的文件中包含header.php,但header.php中的那些链接在多个文件中不起作用。您可以在我的代码中看到它...
root |_admin | |_user | | |__index.php | |index.php | |_assets | |_css/js/etc | |_includes | |_header.php'
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>AdminLTE 2 | Dashboard</title>
<!-- Tell the browser to be responsive to screen width -->
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
<!-- Bootstrap 3.3.7 -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css">
<!-- Font Awesome -->
<link rel="stylesheet" href="../assets/font-awesome/css/font-awesome.min.css">
<!-- Theme style -->
<link rel="stylesheet" href="../assets/css/AdminLTE.min.css">
<!-- AdminLTE Skins. Choose a skin from the css/skins. -->
<link rel="stylesheet" href="../assets/css/skins/_all-skins.min.css">
</head>
<?php include_once __DIR__.'/../includes/header.php';?>
它正常工作,因为一个目录向下。
<?php include_once __DIR__.'/../includes/header.php';?>
它无法正常工作,因为两个目录关闭。不要给我“ ../”或“ ../../”我已经尝试过的意见。
答案 0 :(得分:0)
您最好先设置包含路径,然后以更简单的方式使用它,例如:
set_include_path( $_SERVER['DOCUMENT_ROOT'] . '/includes/' );
include 'header.php';
与CSS / JavaScript文件类似的事情-如果您使用根相对路径/assets/file.css
等,则无论您使用什么嵌套级别,它都将可用。
在header.php
中,更改css链接以使其成为根相对链接(假设资产中存在目录结构!)
<link rel="stylesheet" href="/assets/css/bootstrap.min.css">
<link rel="stylesheet" href="/assets/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="/assets/css/AdminLTE.min.css">
<link rel="stylesheet" href="/assets/css/skins/_all-skins.min.css">
在使用header.php
文件的任何启用PHP的年龄开始时,设置include_path
set_include_path( $_SERVER['DOCUMENT_ROOT'] . '/includes/' );
然后在需要使用它的页面上
include 'header.php';
如果您采用该逻辑/方法,则css应该可用于所有目录中的所有页面。