我有一个具有以下目录结构的PHP项目:
ROOT
- PUBLIC
- CSS
- JS
- LIB
- CONTROLLER
所有基本PHP页面都位于PUBLIC文件夹下,而所有控制器,模型等都位于LIB或CONTROLLER文件夹下。在某些情况下,在控制器完成处理后,它将包含要显示的PUBLIC文件夹中的文件。我注意到包含的文件找不到关联的CSS或JS文件,因为它现在使用相对路径/LIB/CONTROLLER
。
我的问题:
是否有某种方法可以为包含的文件设置不同的相对路径,而无需修改每个CSS或JS包含行?
如果我使用header (Location...)
转发控件,则不会发生此问题但在某些情况下,我不想这样做而只是包含页面 - 因为我必须从控制器传递重物到使用SESSION的页面。有没有更好的方法来实现这一目标?
答案 0 :(得分:1)
正如@Jack T所解释的 - 这个问题的解决方案是在包含的PHP / HTML页面中定义<base>
元素。我学到的一件事是,在定义元素时使用完整的URL,包括http://
这解决了我面临的问题
答案 1 :(得分:0)
在所有php文件中使用类似的东西:
if(未定义PATH_TO_ROOT) 定义PATH_TO_ROOT ='。'
因此,在您的链接和内容中,始终使用此常量制作网址,如下所示:
url = PATH_TO_ROOT。'/ public / css / mycss.css';
**请注意,这只是一个伪代码,而不是实际的PHP代码。
答案 2 :(得分:0)
/使用/绝对/路径/到处/上/你/网站
<击>做/不/使用/相对/那些击>
左见,没有/slash
,不是很好的做法。