当前位置: 首页 > 面试题库 >

带有git和symlinks的基于组件的Web项目目录布局

微生运浩
2023-03-14
问题内容

我正在为这样的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的[“集中方式”内管理,和complib

  • n仓库,您需要重用的每个组件(例如,“ img”是作为Git仓库作为子模块重用的Git仓库webroot
  • 一个主要项目,用于引用您需要的那些子模块的确切版本。

这是symlink子模块的优点之一:您引用_一个_确切的修订版,并且如果该组件具有其自身的某些改进,则不会立即看到它们(直到您无论如何都更新了子模块)。 使用符号链接,您可以在该链接的另一端看到文件集的任何状态。



 类似资料:
  • 我查看了文档,没有找到这样做的方法。有没有办法告诉gradle idea任务创建目录项目结构()而不是项目/模块文件()?

  • 我有一个带有子目录的目录,其中包含各种大小的文件。我想复制一个特定的文件,并立即用所有文件替换它。 例如我有:C:\Folder\Sub_Folder\file1.extC:\Folder\Sub_Folder\file2.ext 我想制作“random_file.ext”的副本,然后将所有副本替换为上面提到的具有原始名称的文件file1.extfile2.ext这样random_file.ext

  • 问题内容: 关于使用Maven和Eclipse创建Java Web应用程序,我有几个问题: 如何使用Maven创建带有servlet,jsp和其他类的Java Web项目? 它创建一个简单的目录结构,src-> main-> java。我在哪里以及如何放置web-inf文件夹? 我是否需要将jdbc-drivers手动添加到web-inf / lib内的文件夹中,还是可以指出依赖项? 有没有办法用

  • 本文向大家介绍基于pycharm 项目和项目文件命名规则的介绍,包括了基于pycharm 项目和项目文件命名规则的介绍的使用技巧和注意事项,需要的朋友参考一下 01命名规则: 项目名前面一数字编号,随着知识点递增,编号递增 例如: 01_python基础、02_分支、03_循环 每个项目下的文件名建议使用小写字母,数字和下划线 文件名不能以数字开始 例如: lile_01_hello.py 02.

  • 我有一个父级目录: Parent/ 在里面有很多子git项目: 我把Parent放在GitHub上的,然后我clone到本地,比如我修改了Parent/前端/react-01 项目,可以只管理推送此项目吗?

  • 我有一个目录,它是在执行应用程序后创建的。在使用应用程序的过程中,它充满了一些图片,这些图片是ComboBox的ItemsSource。在关闭应用程序之前,我试图通过设置new()或NULL来清除ItemsSource并删除该目录。如果目录为空,则会正常删除。但除此之外——什么都没有发生,也没有例外。我做错了什么? 创建目录并将路径值分配给“FeedBackScreenshotsPath” 删除