我有一个关于模板我的php项目的问题。
目前我的文件夹结构如下所示:
/Root
|index.php
|_footer.php
|_header.php
|_nav.php
|
|site_1.php
|site_2.php
|
|css/
|js/
|images/
|subfolder1
|site_3.php
|site_4.php
|subfolder2
|site_5.php
我通常包括" _header"和" _footer.php"在我的index.php文件中,但我有子文件页面的问题。例如,我的_header.php有一个include" _nav.php"。但是当我在site_4.php中包含_header.php时,我遇到了资产和导航的问题。
我读了一个配置文件来定义网站网址,资产路径等,但对我来说并不是那么清楚。理想情况下,我希望有一个"资产"包含css,js等子文件夹的文件夹。
此外,我想知道我可以使用include" _nav.php"使用site_url()。我试过了,但我总是遇到错误。 主要问题是,如何制作site_url,base url(此时我仍然对这些术语以及如何使用它们感到困惑) 谢谢。
答案 0 :(得分:0)
因为您使用的是纯PHP(没有使用框架),所以这有点棘手。有几种方法可以解决这个问题,我建议如下:
在Root文件夹中,创建新文件,我们将其命名为“base.php”,其内容为:
<?php
// This is base.php
define('ROOT_PATH', realpath(dirname(__FILE__)));
现在,在您的每个网站页面(如site_1.php,subfolder1 / site_3.php等)中都包含base.php文件:
<?php
// This is site_1.php
require_once 'base.php';
// ...
在子文件夹网站页面中,包含如下:
<?php
// This is subfolder1/site_3.php
require_once '../base.php';
// ...
如果网站页面较深,请将其包含在内:
<?php
// This is subfolder1/subfolder2/site_5.php
require_once '../../base.php';
// ...
现在,在任何php文件中,如果你想包含另一个php文件(如_nav.php),你可以像这样包含它:
<?php
// This is _header.php
require_once ROOT_PATH . '/_nav.php';
// ...
?>
<!-- to include any css/js/images files, it would be like this: -->
<link rel="stylesheet" type="text/css" href="/css/my_css.css">
<script src="/js/my_js.js"></script>
<img src="/images/my_image.jpg">
我没有测试代码,但它应该可以工作。
答案 1 :(得分:0)
您要找的是HTML基本标签。这将使每个相对链接使用指定的基础。
即。头脑中有这个:
<head>
<base href="http://www.yoursite.com/assets/" />
</head>
...将使以下代码从assets文件夹加载图像:
<img src="image.jpg" />