框架代码和资源作为主项目目录的兄弟目录

时间:2015-01-21 00:38:08

标签: php apache .htaccess mod-rewrite

我会尽我所能清楚地表达我的问题,但如果有什么模糊不清的话,请跟我说。

我正在开发一些PHP Web项目。他们都共享一些共同的代码 - 为简洁起见,我们称之为“框架”。所以我得出的结论是,最好将框架移出项目目录。换句话说,这就是我现在所拥有的:

www
|--framework
|--project1
|--project2
|--project3

只要我只需要包含PHP脚本,这就可以工作。事实上,requireinclude等函数使用文件的物理地址,可以使用require_once("../framework/file.php")轻松指向框架。

但是,在框架目录中还有一些资源:Javascript文件,一些功能性CSS等等。例如,假设jQuery的文件在框架dir中; 我将如何加入<script src="../framework/jquery.min.js"></script>不起作用,因为http://example.com/../framework/jquery.min.js之类的网址被视为无效。

我想到的一个不那么酷的解决方法是使用mod_rewrite将framework URL的所有请求重定向到“框架包含脚本”,这是一个特殊的PHP脚本,可以捕获正确的文件并返回其内容。它可以工作,但对我来说这似乎是一个丑陋的解决方案。

1 个答案:

答案 0 :(得分:2)

我通过使用符号链接来定期执行此操作:

  • 如果您对服务器有shell访问权限,则在每个项目目录中运行ln -s ../framework/ .
  • 如果您没有shell访问权限,请在每个项目目录中运行<?php symlink('../framework', './framework'); ?>

修改

然后您将使用<script src="framework/jquery.min.js"></script> respe。 <?php include 'framework/something.php'; ?>包含框架脚本。