重要提示:接受的答案在赏金后被接受,不一定是因为我觉得这是最好的答案。
我发现自己在开始新项目时一遍又一遍地做事。我创建一个带有子文件夹的文件夹,然后复制一些标准项目,如css重置文件,famfamfam图标,jquery等。
这让我想到了理想的起始模板是什么。我问的原因是我再次经历并且想知道我应该在模板中包含什么,以便将来我不必再回过头来重新开始每一个我开始的新网站
我目前的情况如下:
项目模板文件夹答案 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)
我使用类似的布局,但有一个主要的例外:所有这些目录都位于顶级媒体/目录下。这有几个原因:
一个自定义模板标签(我用过2个Django项目,但你可以用PHP等做)生成网址,a)半随机选择其中一个媒体服务器,b)添加基于时间的伪目录到路径,c)给对象一个过期时间+ 10年。
答案 4 :(得分:1)
我认为结构很好。添加一些其他文件夹取决于您正在完成的工作类型。
对于自由职业者等,添加PSD文件夹,客户评论将是一个很好的补充。
答案 5 :(得分:1)
一个非常偏向MS的观点,但我现在的SOP是:
源/
com.mycompany.projectname.solutionX / (商业意义上的项目)
站点/
资源/
img / (pngs jpegs,gifs等)
js / (发布后压缩)
答案 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)
我已经使用了以下设置一段时间了,效果很好:
/ source:包含任何组合,备注,文档,规格等。
/ templates:从这里开始!创建最终需要移植到CMS或/ site框架中的所有静态模板。
/ media:图片,可下载文件等。必要时组织
/ style:我更喜欢模块化CSS开发,所以我通常会为网站的每个独特部分添加许多样式表。使用Blender大大清理了这一点 - 我强烈推荐这个工具!
/ vendor:所有第三方代码(jQuery,shadowbox等)
Blendfile.yaml (适用于Blender;见上文)
答案 10 :(得分:1)
我喜欢OP作为默认起点。您的标准模板应该简单易行,只有在需要时才能增加复杂性。
一个补充:
/robots.txt的