Web-Developer的项目模板目录

时间:2009-02-04 05:05:03

标签: templates performance project

重要提示:接受的答案在赏金后被接受,不一定是因为我觉得这是最好的答案。


我发现自己在开始新项目时一遍又一遍地做事。我创建一个带有子文件夹的文件夹,然后复制一些标准项目,如css重置文件,famfamfam图标,jquery等。

这让我想到了理想的起始模板是什么。我问的原因是我再次经历并且想知道我应该在模板中包含什么,以便将来我不必再回过头来重新开始每一个我开始的新网站

我目前的情况如下:

项目模板文件夹
  • index.html - XHTML 1.0 Strict Doctype。元标签。引用的CSS / js文件。
  • CSS /
    • default.css - 空。保留用户样式。
    • 960 / - 用于CSS布局的960网格系统。
      • 960.css
      • reset.css
      • text.css
  • JS​​ /
    • default.js - 清空。保留用户脚本。
    • jQuery / - 轻量级Javascript框架
      • 的jquery-1.3.1.min.js
  • IMG /
    • famfamfam / - 优秀的png图标集
      • 图标/
        • accept.png
        • add.png
        • ...等

11 个答案:

答案 0 :(得分:8)

我有类似的结构和命名约定,但对于CSS,我使用BluePrint,我发现它更具可扩展性。也喜欢最近从原型切换的jQuery。另外我有一个common.js文件,它是一个带有jQuery自定义函数的扩展。

包含架构定义的.sql文件的A / db /文件夹。常见中间层库的A / lib /文件夹。

我还有一个/ src /文件夹,有时会有原始文件,如Photoshop模板,自述文件,待办事项列表等。

答案 1 :(得分:3)

如果你有很多共同拥有大量静态内容的项目(例如jquery,css框架等),那就让自己成为一个服务所有这些的媒体服务器。然后,您不是从“模板”创建一堆文件夹结构,而是在项目的html中包含正确的文件。如果你真的想要一个模板,你的模板就会变成一个html文件,而不是一个目录结构。

这也为您提供了一种更新站点静态媒体的简便方法(例如,转到下一版本的960)。你只需要在一个地方做。当然,您仍然需要确保您的更新不会破坏现有网站! :)

如果某些项目有重叠需求但与其他项目不同,您可以使该方案更复杂一些。只需在每个设置的服务器顶层有一个目录,每个设置对应一个html“模板”。主要想法是只处理一个常见的一切副本。

您当然可以在小型虚拟机(例如linode)上以20美元/月或当前网络服务器上的虚拟网络服务器执行此操作。你真的不需要服务器,就此而言,你只需要一个文件夹。但是,我认为通过使用专用媒体服务器可以获得显着的性能提升。为此,我建议使用微调的apache或nginx

对于特定于站点的静态文件,它们也很好地存在于媒体服务器上,而目录结构可能与您拥有的完全相同,但它们应该/应该是空目录。

答案 2 :(得分:3)

我的Web开发框架位于git存储库中。通用代码,例如通用PHP类,在主分支中开发。特定网站的所有工作都在分支上完成,然后将有助于将来工作的更改合并回主服务器。

这种方法对我来说很有效,因为我对所有网站都有完全的版本控制权,如果我在分支机构工作时碰巧修复了错误或实现了新功能,我可以进行合并,然后一切都会受益。< / p>

这是我的模板的样子:

/
|-.htaccess            //mod_rewrite skeleton
|-admin/               //custom admin frontend to the CMS
|-classes/             //common PHP classes
|-dwoo/                //template system
|-config/              //configuration files (database, etc)
|-controllers/         //PHP scripts that handle particular URLs
|-javascript/
      |-tinyMCE/
      |-jquery/
|-modules              //these are modules for our custom CMS
      |-news/
      |-mailing_list/
      |-others
|-private/             //this contains files that won't be uploaded (.fla, .psd, etc)
      |-.htaccess      //just in case it gets uploaded, deny all
|-templates/           //template source files for dwoo

答案 3 :(得分:2)

我使用类似的布局,但有一个主要的例外:所有这些目录都位于顶级媒体/目录下。这有几个原因:

  1. 此目录与另外两台处理所有静态媒体请求的服务器进行rsync。
  2. 拥有多个主机允许某些浏览器对支持文件进行更多并行请求。
  3. media /目录有自己的.htaccess文件,该文件从路径中删除伪目录,该路径是上次修改图像的日期时间(或其他)。
  4. 一个自定义模板标签(我用过2个Django项目,但你可以用PHP等做)生成网址,a)半随机选择其中一个媒体服务器,b)添加基于时间的伪目录到路径,c)给对象一个过期时间+ 10年。

答案 4 :(得分:1)

我认为结构很好。添加一些其他文件夹取决于您正在完成的工作类型。

对于自由职业者等,添加PSD文件夹,客户评论将是一个很好的补充。

答案 5 :(得分:1)

一个非常偏向MS的观点,但我现在的SOP是:

  • 文档/
    • 架构/(你可以称之为代码文档)
    • 通讯/(重要客户文档)
    • 规格/
    • 白皮书/
  • 图形/
    • *。PSD
  • 源/

    • com.mycompany.projectname.solutionA /
    • com.mycompany.projectname.solutionB /
    • com.mycompany.projectname.solutionC /
    • com.mycompany.projectname.solutionX / (商业意义上的项目)

      • businesslogic /
        • *。cs (或其他)
      • (进一步的项目 - 在视觉工作室意义上)
      • 站点/

        • handlers / (这些天很少使用实际的.html)
        • 模块/
        • 资源/

          • img / (pngs jpegs,gifs等)

            • 皮肤/
              • 图标/
              • 背景/
          • js / (发布后压缩)

            • library / (标准代码)
            • common / (应用特定代码)
            • *。js (应用特定代码,希望无效)
          • CSS /
            • skinX / (即使只有“默认”)
              • extension.css
            • base.css
          • 转换/ (始终通过配置或构建过程从公共隐藏)
            • *。XSLT
      • 单元测试/
        • 嘲笑/
        • testmain.cs(或其他)
  • 第三方/
    • 依赖关系

答案 6 :(得分:1)

我绝对喜欢拥有像这样的骨架模板文件夹的想法,但如果你使用一些不同的技术,一定要密切关注结构。与PHP相比,我的VB.net文件夹结构具有完全不同的设置。这听起来像常识,但我看到人们都以同样的方式接近。

答案 7 :(得分:1)

在工作中,我们使用Code Igniter作为我们的Web应用程序的PHP框架,并创建了一个新的项目模板,它完全正确:简单的目录结构,Blueprint CSS,jQuery和Code Igniter应用程序文件夹,通常填充了几个使用过的库(身份验证,常用数据库的一些speciales模型......)。

这里的主要座右铭是:删除组件比添加组件更容易。请填写您的模板。

(当我在业余时间开始一个新项目时,我非常想念那个模板......)

答案 8 :(得分:1)

我认为你在这里所拥有的是伟大的......你所列出的当然是关于你的应用程序的公共前端。我唯一的补充是,如果可能的话,将所有后端代码和源代码保留在公共网站空间之外,因为您在公共空间中拥有的内容越少,您的应用就越安全。

所以我建议你拿走你的整棵树,并把它放进去:

httpdocs/(all you had in your project template folder)

然后将所有后端代码(例如php库,sql文件等)放在相邻的子目录中:

httpdocs/(all you had in your project template folder)
phplibs/
sql/

等。

并且,即使对于您的前端内容,请确保您不要复制前端库可能附带的任何示例文件,因为示例本身可能存在安全问题,导致人们XSS或以其他方式危害您的站点。

答案 9 :(得分:1)

我已经使用了以下设置一段时间了,效果很好:

  • / site:这是我实际工作的网站所在地。创建模板后,我将在此目录中安装CMS或平台。
    • .htaccess (基本调整我通常会发现自己无法启用)
    • robots.txt (所以我不会忘记稍后不允许/ admin这样的项目)
  • / source:包含任何组合,备注,文档,规格等。

  • / templates:从这里开始!创建最终需要移植到CMS或/ site框架中的所有静态模板。

    • /行为
      • global.js (特定于网站的代码;可根据需要分成多个文件)
    • / media:图片,可下载文件等。必要时组织

    • / style:我更喜欢模块化CSS开发,所以我通常会为网站的每个独特部分添加许多样式表。使用Blender大大清理了这一点 - 我强烈推荐这个工具!

      • behavior.css (任何需要启用JS的浏览器的样式)
      • print.css (最终会混合,所以请使用@media print)
      • reset.css Eric Meyer's
      • screen.css (适用于@media屏幕,掌上电脑)
    • / vendor:所有第三方代码(jQuery,shadowbox等)

    • Blendfile.yaml (适用于Blender;见上文)

    • template.html (基本开始模板;可以为每个唯一模板复制和重命名)

答案 10 :(得分:1)

我喜欢OP作为默认起点。您的标准模板应该简单易行,只有在需要时才能增加复杂性。

一个补充:

/robots.txt的