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

Framework code and resources as sibling directory of main project directory

我会尽力弄清楚我的问题,但如果有什么不明白的地方,请多多包涵。

我正在开发一些 PHP 网络项目。它们都有一些共同的代码——为了简洁起见,我们称它为 "framework"。所以我得出的结论是,最好将框架移出项目目录。换句话说,这就是我现在拥有的:

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

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

不过,在framework目录下还有一些资源:Javascript文件,一些功能性的CSS,等等。例如,假设 jQuery 的文件在框架目录中; 我将如何包含它<script src="../framework/jquery.min.js"></script> 不起作用,因为像 http://example.com/../framework/jquery.min.js 这样的 URL 被认为是无效的。

我想到的一个不太酷的解决方法是使用 mod_rewrite 将所有对 framework URL 的请求重定向到 "framework include script",一个特殊的PHP 脚本可以捕获正确的文件和 return 它的内容。它可以工作,但对我来说这似乎是一个丑陋的解决方案。

我经常使用符号链接来做到这一点:

  • 如果您有 shell 访问每个项目目录中的服务器 运行 ln -s ../framework/ .
  • 如果您没有 shell 访问权限,运行 <?php symlink('../framework', './framework'); ?> 进入每个项目目录一次。

编辑

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