2009-02-04 70 views
16

重要提示:接受的答案被接受后的赏金,不一定是因为我觉得这是最好的答案。网络开发人员项目模板目录


我发现自己在开始新项目时反复做事。我创建一个文件夹,子文件夹,然后复制像CSS复位文件,famfamfam图标,jquery等一些标准项目。

这让我想到了什么样的理想起始模板。我问的原因是我再次经历了一次,并且想知道我应该在我的模板中包含什么,以便我不必在未来再回来,并且每次开始新站点时都要重新执行此操作。

我目前有如下:

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

回答

8

我有一个类似的结构和命名约定,但对CSS,我使用BluePrint我觉得这是更具扩展性。还比较喜欢最近从原型切换到jQuery。另外,我有一个common.js文件,它是jQuery自定义函数的扩展。包含模式定义的.sql文件的A/db /文件夹。用于公共中间层库的A/lib /文件夹。

我也将有一个/ src目录/文件夹,有时会有原始文件如Photoshop模板,自述的,待办事项列表等

+0

关于Photoshop文件极好的主意。我在PS上工作很多,并且通常会有.PSD乱丢我的桌面,或者乱丢我的项目文件夹。 – Sampson 2009-02-04 13:40:03

1

我认为,结构好等。添加其他几个文件夹取决于您正在完成的工作类型。

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

1

一个非常MS扭曲的观点,但我SOP现在是沿着线:

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

    • com.mycompany.projectname.solutionA/
    • com.mycompany.projectname.solutionB/
    • com.mycompany.projectname.solutionC/
    • com.mycompany.projectname.solutionX/(在这里经营意识项目)

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

        • 处理程序/ (很少用实际的。HTML这些天)
        • 模块/
        • 资源/

          • IMG/(PNG格式的JPEG,GIF文件等等)

            • 皮肤/
              • 图标/
              • 点的背景/
          • JS/(压缩时公布)

            • 库/ (标准码)
            • 公共/ (应用特定代码)
            • * .js (应用特定代码,希望为零)
          • CSS/
            • skinX/(即使仅仅是 “默认”)
              • extension.css
            • base.css
          • 变换/ (al从公众隐藏的方式通过配置或构建过程)
            • * .xslt
      • 单元测试/
        • 嘲笑/
        • testmain.cs(或其他)
  • 第三方/
    • 依赖
3

如果你有很多的项目有很多的共同点静态内容(例如jQuery的,CSS框架等)使自己的媒体服务器来服务所有这些。然后,您不需要从“模板”创建一堆文件夹结构,只需将正确的文件包含在项目的html中。如果你真的想要一个模板,你的模板将变成一个html文件而不是目录结构。

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

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

您当然可以在小型虚拟机(例如linode)上以$ 20 /月或您当前Web服务器上的虚拟Web服务器的方式执行此操作。你并不需要一台服务器,对此,你只需要一个文件夹。不过,我认为通过拥有专用的媒体服务器,您可以获得显着的性能提升。我建议使用微调的apache或nginx来达到这个目的。

至于特定于站点的静态文件,它们驻留在介质服务器上,目录结构可能与您拥有的完全相同,但它们应该是/应该是空目录。

1

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

3

我的web开发框架位于git仓库中。通用代码(例如通用PHP类)在主分支中得到开发。所有针对特定网站的工作都会在分支上完成,然后进行更改,这将有助于将来的工作合并回主。

这种方法对我来说很好,因为我对所有网站都进行了完整的版本控制,如果我在分支上工作时修复了一个bug或实现了一个新功能,我可以进行合并,然后一切都会受益。

这里是我的模板是什么样子:

/ 
|-.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 
+0

我认为这是一个重量级的解决方案。拥有我在一个git树中开发的所有网站,以及不同的分支......我想如果你的项目有这么多共同点,它会在一个实用程序错误修正中更新它们。 – Thelema 2009-02-13 17:20:10

1

在工作中我们使用代码点火器,其为我们的web应用的PHP框架,并创建了一个新的项目模板,正是这么做的:简单的目录结构,蓝图CSS ,jQuery和Code Igniter应用程序文件夹,里面充满了几个常用库(认证,常用数据库的一些Speciales模型......)。

这里的主要格言是:删除组件总比添加组件容易。所以填写你的模板。

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

1

我觉得你在这里是伟大的,你已经列出....是什么当然,所有关于您的应用程序的公共前端。我唯一的补充是,如果可能的话,将所有后端代码和源代码保留在公共Web空间中,因为公共空间中的东西越少,应用程序就越安全。

所以我建议你把你的整个树,并把它放在:

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

然后把你的所有后端代码(如PHP库,SQL文件等)相邻子目录:

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

而且,即使你前端的东西,请确保您不要在可能会与您的前端库中的任何示例文件复印件,自己可能有实例安全问题可能会导致人们进入XSS或以其他方式危害您的网站。

1

我一直在使用了一段时间如下设置,现在很大的成绩:

  • /网站:这是我的实际工作网站将生活。在创建模板后,我将在此目录中安装CMS或平台。
    • 的.htaccess (基本扭动我经常发现自己无论如何使)
    • 的robots.txt (所以我不会忘记,以禁止像/管理员后项目)
  • /来源:包含任何补充,备注,文件,规格等。

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

    • /行为
      • global.js (位点特异性的代码;可根据需要细分为多个文件)
    • /媒体:图像,可下载的文件等。必要时组织

    • /风格:我更喜欢模块化的CSS开发,所以我通常最终为每个独特的部分 网站。用Blender大大地清理了这个 - 我强烈推荐这个工具!

      • behavior.css
      • print.css (需要启用JS-浏览器的任何造型)(这最终被混合,所以使用@media打印)
      • reset.css Eric Meyer's
      • screen.css (对于@media屏幕,手持式)
    • /vendor:所有第三方代码(jQuery,shadowbox等))

    • Blendfile.yaml (对于搅拌机;见上文)

    • template.html (基本出发模板;可复制和重命名为每个独特模板)
2

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

  1. 此目录是rsync'd rsync'd处理所有的静态媒体请求。
  2. 拥有多个主机允许一些浏览器对支持文件进行更多的并行请求。
  3. media /目录有它自己的.htaccess文件,它从图像(或其他)的日期 - 时间最后修改的路径剥离出psuedo目录。

自定义模板标签(我已经使用了2个Django项目,但您可以在PHP等中使用此标签)生成的网址a)半随机选择其中一个媒体服务器,b)添加基于时间的伪目录到路径,以及c)为该对象提供现在+10年的过期时间。

1

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

一个加法:

/robots.txt的