PHP 将 () 函数定义为 URL
PHP define() function as URL
我正在为我在学校的总结工作开发一个网站。我正在使用 XAMPP v3.2.1。到本地站点。
我站点的文件夹在 htdocs
文件夹中的配置如下:
- ibnm
- css
- js
- img
- ...
- 网站
- 关于
- 米迪亚
- ...
- includes.php
- index.php(首页)
我的问题从这里开始:在 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>
标签时,它看起来像
localhost/ibnm/site/localhost/ibnm/css
而不是
localhost/ibnm/css
这很令人困惑,因为如果 <a>
标签没有任何值 (href=""
),它会输出 localhost/ibnm/site/.
有什么问题吗? XAMPP 还是编码?
这是因为浏览器认为localhost是一个文件夹,然后在当前路径之上进行此操作,解决方法是在localhost
之前添加http://
define("css", "http://localhost/ibnm/css");
您可以在 CSS 路径前添加一个斜杠而不是使用绝对路径 -
<link href="/<?= css; ?>/bootstrap.css" rel="stylesheet">
任何 url 不是以 http 开头,那么浏览器将假定它的相对路径,因此它将附加到您当前的路径,这就是为什么您得到 localhost/ibnm/site/localhost/ibnm/css.
并且在您的代码中进行一个小的更正,在代码中硬编码服务器名称不是一个好主意,最好动态获取服务器名称。这样您在真实服务器中部署站点时无需更改。
//includes.php
<?php
define("css", $host='http://'.$_SERVER['SERVER_NAME'].'/ibnm/css');
?>
我正在为我在学校的总结工作开发一个网站。我正在使用 XAMPP v3.2.1。到本地站点。
我站点的文件夹在 htdocs
文件夹中的配置如下:
- ibnm
- css
- js
- img
- ...
- 网站
- 关于
- 米迪亚
- ...
- includes.php
- index.php(首页)
我的问题从这里开始:在 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>
标签时,它看起来像
localhost/ibnm/site/localhost/ibnm/css
而不是
localhost/ibnm/css
这很令人困惑,因为如果 <a>
标签没有任何值 (href=""
),它会输出 localhost/ibnm/site/.
有什么问题吗? XAMPP 还是编码?
这是因为浏览器认为localhost是一个文件夹,然后在当前路径之上进行此操作,解决方法是在localhost
之前添加http://
define("css", "http://localhost/ibnm/css");
您可以在 CSS 路径前添加一个斜杠而不是使用绝对路径 -
<link href="/<?= css; ?>/bootstrap.css" rel="stylesheet">
任何 url 不是以 http 开头,那么浏览器将假定它的相对路径,因此它将附加到您当前的路径,这就是为什么您得到 localhost/ibnm/site/localhost/ibnm/css. 并且在您的代码中进行一个小的更正,在代码中硬编码服务器名称不是一个好主意,最好动态获取服务器名称。这样您在真实服务器中部署站点时无需更改。
//includes.php
<?php
define("css", $host='http://'.$_SERVER['SERVER_NAME'].'/ibnm/css');
?>