小智 16
这是许多大型应用程序在安装时尝试设置"根URI"常量/变量的原因.
而/css/style.css如果您的应用程序位于域/子域的根目录下将工作,它会如果它是不会失败(/appName/css/style.css)
将绝对URI与其他配置常量/变量一起存储到"root"脚本文件夹,构建绝对链接变得轻而易举.
define( 'SCRIPT_ROOT', 'http://localhost/yourApplication' );
// ...
echo '<link rel="stylesheet" type="text/css" href="'.SCRIPT_ROOT.'/css/style.css">';
Run Code Online (Sandbox Code Playgroud)
你有几个选择,我试图在这里收集
基础href
<head>
<base href="http://www.mysite.com/" />
</head>
Run Code Online (Sandbox Code Playgroud)
它的作用是将所有href设置为指向某个路径.使用此设置,<link rel='stylesheet' href='css/mycss.css' />即使您的页面位于内部,也可以使用并成功加载mycss.css文件http://www.mysite.com/pages/2012/public/secret_folder/myownphpfile.php
绝对路径
您可以随时使用aboslute路径,但稍后更改文件夹可能会很麻烦.
<link rel='stylesheet' href='http://www.mysite.com/css/mycss.css' />
Run Code Online (Sandbox Code Playgroud)
定义了拍子
正如@Discomatt所说,使用PHP定义的路径是一种简单的方法来保持工作.下行; 你必须使用PHP.如果你反正使用它,没有问题^^
define('CSSDIR', 'http://www.mysite.com/css/);
<link rel='stylesheet' href='<?= CSSDIR ?>mycss.css' />
Run Code Online (Sandbox Code Playgroud)
小智 6
我可以看到想要为href链接生成动态和相对路径的一个原因,那就是在多个域或具有不同路径的站点上运行项目.(例如,您的项目可以在http://myproject.example.org/上找到,也可以在http://example.org/myprojecttest/上找到).如果不是这种情况,我建议直接指定你的css包括相对于根文件夹:
<link href="/css/style.css" />
Run Code Online (Sandbox Code Playgroud)
如果这适用于您,请尝试以下操作:
在每个需要header.php的顶级文档中,添加一个$ ROOT变量,该变量指示顶级文档与根位置的位置.例如:
$ROOT = './';
Run Code Online (Sandbox Code Playgroud)
要么
$ROOT = '../';
Run Code Online (Sandbox Code Playgroud)
要么
$ROOT = '../../';
Run Code Online (Sandbox Code Playgroud)
现在,在header.php文件中,您可以使用:
<link href="<?php echo $ROOT; ?>css/style.css" />
Run Code Online (Sandbox Code Playgroud)
这允许您创建一个header.php文件,该文件适用于任何相对路径的任何页面.
完整的例子
包含的文件(/path/header.php)
<html><body>
<head>
<link href="<?php echo $ROOT; ?>css/style.css" />
[...]
Run Code Online (Sandbox Code Playgroud)
文件1(/path/index.php):
<?php
$ROOT = './';
include 'header.php';
?>
Run Code Online (Sandbox Code Playgroud)
文件1(/path/admin/index.php):
<?php
$ROOT = '../';
include '../header.php';
?>
Run Code Online (Sandbox Code Playgroud)
文件3(/path/admin/test/magic.php):
<?php
$ROOT = '../../';
include '../../header.php';
?>
Run Code Online (Sandbox Code Playgroud)
像这样:
<link rel="stylesheet" href="/css/style.css" />
Run Code Online (Sandbox Code Playgroud)
第一个/说“转到根目录并从那里查看”。这是一个相对路径。