我是PHP的新手,我正在做一个项目,我在链接css和js文件时遇到了一些问题。现在当项目被执行时,第一个索引.php加载(位于根目录中),其中包括home.php并且其中的所有内容都正确执行。但是一旦你点击"主页"上的"关于"链接,页面就会被重定向到about.php(它位于Presentation/about.php)这里css和js链接失败......
在执行索引时.php它成功获取css链接(链接如下)<link href="css/bootstrap-theme.min.css" rel="stylesheet">
但稍后当页面重定向到"关于"时.php它期望链接 <link href="../css/bootstrap-theme.min.css" rel="stylesheet">
我正在为这些链接使用通用文件,我将所有链接保留在 header.php(位于演示文稿/模板/标题.php)
我还在config.php(位于inc/config.php
)中定义了所有路径我已经在配置中定义了路径.php如下所示
// SITE_ROOT contains the full path to the RichTongue folder
define('SITE_ROOT', dirname(dirname(__FILE__)));
// Application directories
define('PRESENTATION_DIR', SITE_ROOT . '/Presentation/');
define('TEMPLATE_DIR', PRESENTATION_DIR.'Template/');
define('BUSINESS_DIR', SITE_ROOT . '/Business/');
define('CSS_DIR', SITE_ROOT. '/css/');
define('FONT_DIR', SITE_ROOT . '/fonts/');
define('IMAGE', SITE_ROOT . '/images/');
define('JS', SITE_ROOT . '/js/');
所以我尝试通过以下方式链接 CSS
<link href="<?php echo CSS_DIR ?>bootstrap.min.css" rel="stylesheet" >
现在上面的代码在 chrome 中给了我一个错误,上面写着
Not allowed to load local resource: file:///C:/xampp/htdocs/RichTongue/css/bootstrap.min.css
home.php:13
现在上面错误(file:///C:/xampp/htdocs/RichTongue/css/bootstrap.min.css)中的路径是正确的,但它没有加载文件并给出错误(上面指定的错误)
Q)我该怎么办?在PHP中链接CSS和JS文件的正确方法是什么?需要帮助
为 SITE_ROOT 设置 URl 路径
如果你的项目路径是 C:/xampp/htdocs/RichTongue/css/bootstrap.min.css
所以用下面的行改变
define('SITE_ROOT', 'http://localhost/RichTongue');
用绝对路径链接你的css和其他资源似乎是你很容易的解决方案。
绝对路径来自您网站的根目录:C:/xampp/htdocs/RichTongue
您可以使用/css/bootstrap.min.css
而不是file:///C:/xampp/htdocs/RichTongue/css/bootstrap.min.css
所以你必须修改
define('CSS_DIR', SITE_ROOT. '/css/');
自
define('CSS_DIR', '/css/');
其他资源(JS、字体等)也是如此。
示例结果:
<link href="/css/bootstrap-theme.min.css" rel="stylesheet">
假设如果你有一个名为css
的文件夹,你可以像这样使用真实路径:
define('CSS_DIR', realpath(dirname(__FILE__).'/css'));
然后,您将像这样使用该常量路径:
echo CSS_DIR."/style.css";
尝试以这种方式使用它:
$SITE_FOLDER_NAME = "demo/"; define('SITEURL', 'http://'.$_SERVER['SERVER_NAME'].'/'.$SITE_FOLDER_NAME); define('SITEURL_CSS', SITEURL.'css/');
./assets/CSS/filename.css为我做了这项工作。