0

我不明白。当试图包含来自不同目录的文件时,我确定我一定错过了一些真正简单的东西。

网站结构是这样的。 目录结构

如果我include("includes/header.php);来自 /reports/top_sellers_report.php 文件,则对 css 文件的调用不起作用。
为了使它工作,我必须把../styles/styles.css
但是,如果我从根目录打开“product_dtails.php,它也包含标题,然后css文件将无法加载,我需要删除它../才能使其工作。
我可以' t win...
我错过了什么吗?
4 小时的在线搜索表明我错过了!

4

3 回答 3

0

我认为您应该考虑使用 MVC 方法,因为这可能会帮助您更好地组织代码: http ://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller

包含语句在服务器上进行评估,因此无论您从哪里包含文件,都需要从那里相对指定它。CSS 'include' 正在浏览器中进行评估,因此您需要使文件路径相对于该目录。

我建议使用 MVC 方法,因为它可以帮助您管理代码并将网站的不同部分分成不同的部分,这应该可以帮助您避免这个问题。

我想您可以在每个页面上绝对参考您的样式表(即http://www.mywebsite.com/dir/dir2/stylesheet.css),这也可以。

于 2012-05-16T10:44:15.753 回答
0

您的问题实际上与 PHP 无关。只看网址:

http://www.example.com/
http://www.example.com/reports/
http://www.example.com/styles/styles.css

根据您在网站上的位置,到的相对路径styles.css可能会发生变化,因此当您访问时,http://www.example.com/reports/您必须使用../styles/styles.css,而http://www.example.com/您必须使用我们styles/styles.css

解决问题的最简单方法可能是使用绝对 URLhttp://www.example.com/styles/styles.css或基本路径/styles/styles.css而不是../styles/styles.css. 我推荐后者。

于 2012-05-16T10:46:22.427 回答
0

据我所知, include 是相对于你的索引的,所以你有 root/index.php

在 index.php 中,您应该在 include/header.php 中使用 include("styles/style.css") 您需要添加 ../styles 以将您重定向到根目录,然后重定向到您的样式文件夹等等

如果你直接打开product_dtails.php,它会像index.php一样,所以你只需要使用styles/style.php

于 2012-05-16T10:46:51.187 回答