好的,这是我的文件夹布局:
Car
-bower_components
-includes
-logs
-public
--admin
--css
--fonts
--img
--js
-vendor
在根文件夹中,我有paths.php
:
<?php
//$glock=$_SERVER['HTTP_HOST'];
//if(!defined('ROOT')){define('ROOT',$_SERVER["DOCUMENT_ROOT"]);}
if(!defined('ROOT')){define('ROOT',__DIR__.'/');}
if(!defined('INCLUDES')){define('INCLUDES',ROOT.'includes');}
if(!defined('LOGS')){define('LOGS',ROOT.'logs');}
if(!defined('ADMIN')){define('ADMIN',ROOT.'public/admin');}
if(!defined('CSS')){define('CSS',ROOT.'public/css');}
if(!defined('FONTS')){define('FONTS',ROOT.'public/fonts');}
if(!defined('IMG')){define('IMG',ROOT.'public/img');}
if(!defined('JS')){define('JS',ROOT.'public/js');}
?>
我正在使用模板系统,以便我可以从任何地方调用我的CSS和HTML文件。我一直未能将head-tag.php
文件(includes
)调用到我的index.php
文件中。这是我的索引文件:
<?php
include('paths.php');
echo "<html lang='en'>";
echo " <head>";
include('includes/head-tag.php');
echo" </head>";
echo " <body>";
echo " <header>";
include('includes/header.php');
echo " </header>";
?>
<main>...
这是head-tag.php
:
...
<!--Include all stylesheetes-->
<link href=<?php echo CSS."/main.css"; ?> rel="stylesheet">
<link href=<?php echo CSS."/bootstrap.css"; ?> rel="stylesheet">
<link href=<?php echo CSS."/carousel.css"; ?> rel="stylesheet">
<link href=<?php echo CSS."/cars.css"; ?> rel="stylesheet">
<link href=<?php echo CSS."/footer.css"; ?> rel="stylesheet">
<link href=<?php echo CSS."/loader.css"; ?> rel="stylesheet">
<!--DateTimePicker JS includes-->
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.js"></script>
<script type="text/javascript" src="bower_components/moment/min/moment.min.js"></script>
<script type="text/javascript" src="bower_components/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js"></script>
我已尝试回显我的head-tag.php
文件中的路径,但它只提供了文件目录,而不是服务器上的文件目录,它生成了一个&#34;不允许加载本地资源&#34;错误。我知道我在这里做错了什么但我不能把它钉死。我现在已经尝试了超过24小时。在我的paths.php
文件中,我尝试使用str_replace()
来摆脱&#34; C:/..."并将其替换为&#34; localhost:8080 ...&#34;但它没有用,除非我做错了,我不知道。有什么建议?有些东西告诉我,我必须在我的head-tag.php file
中再次定义路径,我有点想避免。
TL; DR
如何让head-tag.php
回复&#34; localhost:8080 ...&#34;而不是file:/// C:/wamp64/www/..."
更新 我解决了这个最初的问题,但现在我有了一个新的问题。我在下面回答了我自己的问题并提出了新问题。
答案 0 :(得分:0)
好的我有点找到了解决方案。在我的路径文件中,我现在拥有if(!defined('ROOT')){define('ROOT',__DIR__.'/');}
,而不是if(!defined('ROOT')){define('ROOT',dirname(dirname(htmlspecialchars($_SERVER['SERVER_NAME']))));}
。现在,当我尝试从另一个不在根目录中的php文件访问头文件时,它不起作用。我发现发生这种情况的原因是它仍然确定了文件中的根,我认为当我停止使用__DIR__
和__FILE__
时我就逃避了。那么无论我调用哪个文件/文件夹,如何将根文件夹设置为常量?