带有git和symlinks的基于组件的Web项目目录布局
我正在为这样的linux / apache / php网络项目计划目录结构:
仅www.example.com/webroot/
会暴露在apache中
www.example.com/ webroot/
index.php
comp1/
comp2/
component/
comp1/
comp1.class.php
comp1.js
comp2/
comp2.class.php
comp2.css
lib/
lib1/
lib1.class.php
在component/
和lib/
目录将只在PHP路径。
为了使css和js文件在webroot目录中可见,我计划使用符号链接。
webroot/ index.php
comp1/
comp1.js (symlinked)
comp2/
comp2.css (symlinked)
我尝试遵循以下原则:
- index.php是按组件和库进行布局的,而不是按文件类型进行布局的,而不是按“公共”或“非公共”布局的,这是一个例外,这是为了简化开发。
- 仅公开公共Web目录中的最少文件集,并使其他所有内容无法访问Web。将需要对组件公开的文件和库的符号链接到公共位置,但仍镜像布局。因此,组件和库的结构在链接中生成的html代码中也可见,这可能有助于开发。
- git的用法应该是安全的,并且可以正常工作。可以按照某些步骤向git添加符号链接是可以的,但是在此之后检查它们或更改分支应该安全,干净地进行。
git如何正确处理单个文件的符号链接,有什么需要考虑的吗?
当涉及到图像时,我将需要链接目录,如何使用git处理该目录?
component/ comp3/
comp3.class.php
img/
img1.jpg
img2.jpg
img3.jpg
它们应在此处链接:
webroot/ comp3/
img/ (symlinked ?)
如果为此使用符号链接有缺点,也许我可以将图像直接移动到webroot /树,这将破坏第三个原则(git实用性)。
所以这是一个git和symlink问题。但是我很想听听有关php布局的评论,也许您想为此使用评论功能。
回答:
一旦您需要在其他地方 重用 某些文件集,就应该开始考虑 或(git)
您可以定义以下内容webroot
,而不是在同一存储库(SVN或CVCS的[“集中方式”内管理,和comp
,lib
- n仓库,您需要重用的每个组件(例如,“
img
”是作为Git仓库作为子模块重用的Git仓库webroot
) - 一个主要项目,用于引用您需要的那些子模块的确切版本。
这是symlink子模块的优点之一:您引用_一个_确切的修订版,并且如果该组件具有其自身的某些改进,则不会立即看到它们(直到您无论如何都更新了子模块)。 使用符号链接,您可以在该链接的另一端看到文件集的任何状态。
以上是 带有git和symlinks的基于组件的Web项目目录布局 的全部内容, 来源链接: utcz.com/qa/400915.html