我正在为我在学校的结论工作开发一个网站。我正在使用 XAMPP v3.2.1 。到本地主机网站。
我的网站的文件夹在htdocs
文件夹中配置如下:
我的问题从这里开始:在index.php
我包括includes.php
,这是一个带有define()函数的简单文件到我网站的文件夹,所以我可以在HTML标签上打印常量网站为URL(如下所示)
//includes.php
<?php
define("css", "localhost/ibnm/css");
?>
//index.php
<?php
include_once("includes.php");
?>
<link href="<?= css; ?>/bootstrap.css" rel="stylesheet">
但是当我这样做时,CSS不起作用。当我在页面上看到带有先前定义的URL的<a>
标记时,它看起来像
本地主机/ ibnm /站点/的本地主机/ ibnm / CSS 的
而不是
本地主机/ ibnm / CSS
如果<a>
标记没有任何值(href=""
),它会输出 localhost / ibnm / site / ,这会导致混淆。
有什么不对? XAMPP还是编码?
答案 0 :(得分:2)
任何网址都不以http开头,那么浏览器会假设它的相对路径会附加到您当前的路径,这就是为什么您获得 localhost / ibnm / site / localhost / ibnm / css 的原因。 在代码中进行一次小的修正,在代码中硬编码服务器名称并不好,最好动态获取服务器名称。这样您就无需在真实服务器中部署站点时进行更改。
//includes.php
<?php
define("css", $host='http://'.$_SERVER['SERVER_NAME'].'/ibnm/css');
?>
答案 1 :(得分:1)
这是因为浏览器认为localhost是一个文件夹,然后在当前路径的顶部执行此操作,修复只是在localhost之前添加grunt
http://
答案 2 :(得分:0)
您可以在CSS路径之前添加一个斜杠 -
,而不是使用绝对路径<link href="/<?= css; ?>/bootstrap.css" rel="stylesheet">