请考虑以下事项:
我有一个大型项目,包括一个父网站,以及多个“子网站”,他们都共享相同的“核心/基础”内容..(图片,'包括',样式表等)
我的目的是让这些重复文件驻留在1个特定服务器上,并在需要时始终引用相同的路径。
这将导致任何修改后的“核心”文件(图像,“包含”,样式表等)影响所有交叉引用。
最好的方法是什么?
目前,(可能是暂时的)我正在使用以下内容.. <?php readfile('http://remotepath.com/_core/includes/top_nav.php'); ?>
这是一次尝试,最近解决<?php include('/filepath/'); ?>
这带来了一个明显的问题 - 使用以下内容来定位当前页面,将不再有效.. 其次,通过'readfile'检测内容是不安全的?
<?php $url = basename($_SERVER['SCRIPT_FILENAME']); echo $url; ?>
这当然会返回该文件的路径'top_nav.php'
如何使用类似的方法获取网址/网址的值?
任何见解都将受到赞赏!干杯。
答案 0 :(得分:1)
不要这样做。
将图像,脚本和样式表放在另一台服务器上是很好的。实际上,这实际上是一件好事 - 这意味着您可以同时下载更多文件,这将加快您网站的加载速度。但是,对远程文件执行include
调用会非常具有破坏性。这是因为这会使您的服务器向远程服务器发出HTTP请求。当发生这种情况时(并且可能需要一秒或更长时间),您的脚本将完全没有。。它会极大地减慢您的网站速度。
一定要在站点之间共享文件。但是,我强烈建议您不要在呈现页面时这样做。您可能希望定期从父服务器将文件下载到子服务器上,然后通常从本地文件系统中包含它们。
注意事项可以通过HTTP呼叫include
或readfile
并不意味着您应该。
答案 1 :(得分:1)
不要远程包含源文件。如果您想在许多不同的服务器上使用相同的PHP库副本,可以使用几种简单的方法。您可以通过定期复制从主服务器到从服务器的任何更改的rsync,或者将您的共享文件放入源代码控制系统(如git),然后在每个服务器上执行“git pull”命令。