时间:2019-08-16
编辑:网站制作公司
5598
0
大多数开发人员已经了解内容管理系统如何工 WordPress的流行已遍布全球,成为创建任何博客的主要内容。
然而,越来越多的趋势是将静态网站生成器用于博客或小型网站。这些是动态编译器,可将预处理代码转换为静态HTML / CSS / JS文件,这些文件可在没有数据库的服务器上维护。虽然这可能不是每个站点的最佳工作流程,但开发人员涌向静态站点生成器的原因有很多。
上海高端网站建设在这篇文章中,我想探讨静态网站生成器的深度:它们的作用,它们是如何做的以及为什么要使用它。如果您只是不了解静态站点生成器,那么希望这篇文章能够阐明这个主题。
网络实际上是在90年代开始的纯静态HTML文件。是的,有更大的应用程序在Perl或Java上运行,但HTML是任何人在线发布内容的最快方式。
静态网站旨在快速提供内容。HTML页面由Web浏览器直接解析,因此HTTP延迟是加载时间的最大因素。
多年来,网络发展到包括数据库和强大的引擎,如WordPress。这些引擎很快成为首选解决方案,因为它们可以运行功能强大的应用程序,而无需编写后端代码。
随着CMS引擎的增长,管理加载时间成为一个值得考虑的问题。开发人员需要担心数据库查询时间和庞大的模板。缓存有帮助但很少提供与静态网页相同的性能。
这种对静态站点的固定是在内容管理系统对于较小的项目而言过于臃肿的时候出现的。这几乎就像网络行业已经全面展开,实现静态HTML页面的好处 - 但这次我们拥有更强大的工具供我们使用。
采用静态内容的最大原因之一是技术和浏览器功能。使用纯JavaScript和外部API设置动态资源比以往任何时候都容易。
这允许开发人员创建静态页面,仍然支持使用Swiftype进行站点搜索,或允许用户通过Disqus评论。如果一个站点不需要运行数据库那么为什么呢?
开发人员静态的另一个原因是性能。现代网络用户正在各种环境中浏览,从小型智能手机到具有双显示器的顶级台式机。每个变量都很难规划,因此最好的方法是尽可能优化。
根据定义,静态网站用于处理流量。无需担心可能会减慢加载时间的缓存或数据库限制。
总而言之,对静态网站的重新认识源于:
改进了Web浏览器功能
支持Sass / Less和Haml / Jade等预处理
许多免费的第三方动态内容解决方案
静态站点生成器可以快速高效地创建网站
静态网站不依赖于任何数据库。静态站点不等待数据库连接,当然也不处理数据库错误。
类似地,静态站点不依赖于任何后端语言。您不需要具有PHP,Rails,Python,Node或服务器核心功能以外的任何服务器。静态站点只会加载静态内容,并完全按照Internet的要求进行操作。
同样考虑到对动态网站征收的安全问题。虽然多年来网络安全性有所提高,但恶意黑客仍然可以通过数据库注入或不正确构建的插件/主题进入WordPress和其他系统。
以下是在动态站点上使用静态站点的一组简要优势:
与动态内容相比,静态内容的HTTP请求加载速度更快
静态网站更安全,漏洞点更少(没有数据库或后端脚本)
静态站点生成器为动态CMS提供了可比较的工具(例如模板,部分,预处理)
学习使用静态站点生成器比学习完整的CMS更容易
没有数据库或后端服务器要求
虽然有很多关于静态网站生成的好话,但它仍然不完美,对每个项目来说都不是很好。
从用户的角度来看,最大的缺点可能是内容管理。开发人员在写一些markdown,生成页面并将其推送到服务器时没有问题。但是非技术客户能够做到这一点吗?他们甚至想学习吗?
这是相当不幸的,因为静态生成器的主要目标是小型网站。
该解决方案是一个静态站点CMS,具有Netlify CMS等用户管理功能。
另一个考虑因素是每次需要重新编译站点时运行终端命令所需的手动操作。大多数生成器都通过终端运行,需要一些模板语言(ERB,EJS,Liquid等)的知识。
当然这没有错。但是那些不熟悉这些技术的人需要学习。越过学习曲线需要时间,但却是非常有益的。
由于并非每个项目都可以从静态站点生成器中受益,因此您需要考虑这些潜在的缺点:
没有用于编辑页面的GUI或可视后端; 必须手动编辑每个静态页面
除非您已经了解模板语言,否则构建静态站点生成器的主题需要时间
每次都必须将新页面推送到服务器
你需要习惯使用终端
没有正确或错误的答案,最终由开发人员决定每个项目的最佳选择。
现在您已了解静态网站生成器的优缺点,让我们深入研究它们的工作原理并探索一些流行的选项。
每个发生器都不同,设置过程略有不同。但是举个例子,我将介绍如何设置Jekyll以及如何使用它。
首先,您需要安装您正在使用的生成器所需的任何语言或运行时。Jekyll作为Ruby gem安装最简单,因此在您的系统上安装Ruby是最好的起点。大多数操作系统都可以通过命令行执行此操作,因此请查看Ruby安装指南以了解更多信息。
安装Ruby后,您应该能够从命令行运行gem install jekyll。如果一切顺利,您可以在计算机的任何位置设置新的Jekyll站点。
您可以运行jekyll new project来创建名为“project”的文件夹。这将成为新站点的主要工作目录。这应该包含一个Jekyll doc结构,然后可以使用jekyll build 命令对其进行解析。
请注意,大多数Jekyll事件都是直接从终端运行的。它通过Ruby gem运行,因此您必须在CLI中输入命令。
每个新构建都可以使用可选参数设置jekyll构建,例如自定义工作目录的-source,或自定义输出目录的-destination。这映射了Jekyll的一般工作流程:设置新站点,编写代码,将其构建到静态页面并进行测试。然后重复一遍
Jekyll的另一个很酷的方面是内置的开发服务器。通过运行jekyll服务,您可以启动本地服务器来测试您的Jekyll站点。它甚至还配备了一个用于即时编译变化的监视命令,这对于本地开发非常有用。
可以在大多数静态站点生成器上模拟此工作流,因为它们都执行非常类似的任务。一旦选择了生成器,请务必阅读官方文档以了解设置过程和终端命令。
静态生成器使内容发布变得轻而易举。您可以从您定义的任何页面布局动态编译页面,而不是硬编码HTML。
几乎每个静态站点生成器都使用Markdown来处理页面内容。这在GitHub和Stack Overflow等网站上普及,它们使用自己的Markdown语法变体。
当然,仍然可以使用原始HTML编写内容。虽然Markdown通常更快地进行一般写作,但Markdown 本身不能使用HTML类 。
但是,所有Markdown文档都是有效的HTML文档,因此可以将两者混合使用。
一些开发人员可能因Markdown的书面内容要求而被推迟。如果您更愿意用HTML编写所有内容,那就完全没问题了。Jekyll还与Markdown一起支持Textile格式。Pelican等其他站点生成器支持reStructuredText和 AsciiDoc等替代方案。
由于有这么多选项,你应该尝试不同的发电机,看看哪个(s)感觉正确。内容生成工作流程基本上在所有生成器中都起作用。主要区别在于语法和目录结构。
最后一步是在线发布您的内容。这并不比简单的FTP上传到服务器根目录更复杂。如果您想仔细阅读其他选项,Jekyll有一个部署方法页面。但一般来说,站点部署与从头开始编写原始HTML并将其推送到服务器没有什么不同。
所有现代静态网站生成器都允许通过包含可重复的代码片段。任何使用PHP或Python工作的人都知道包括调用外部文件重复模板代码而不重写重复部分。
由于所有静态生成器都可以编译为HTML,因此它们的主题可以利用这些包含。因此,前端开发人员可以编写一些动态主题并通过生成器运行它们来获取静态站点文件。
每个生成器都有自己的主题方法,但它们都遵循类似的技术,使用布局文件进行单独的模板设计。例如,您可能有一个主页的布局文件和另一个内部页面的布局文件。
动态解析是事情变得有趣的地方。例如,Jekyll建立在Liquid上,这是一个动态模板引擎。但是Middleman使用Embedded Ruby作为模板文件。
请注意,大多数所有生成器都可以使用partials,这与包含重复代码片段(如页眉或页脚)的内容相同。
如果您刚刚开始,那么请查看像Jekyll Themes或Hugo Themes这样的资源。通过为您首选的生成器下载预先构建的主题,您可以剖析代码并了解主题的构建方式。
如果不了解最好的静态站点生成器,哪些指南是完整的?有这么多选项可供选择,它可能是压倒性的 - 特别是对于之前从未使用静态站点生成器的开发人员。
以下工具不是唯一可用的选项,但它们是迄今为止最广泛使用和首选的生成器。每一个都有自己独特的设置和方法,所以研究一些,找到最适合您的需求。
Jekyll可以说是其文档和大型支持社区最受欢迎的静态站点生成器。它基于Ruby构建,通常用作静态博客生成器。
Jekyll实际上是由GitHub创始人Tom Preston-Werner创建的。这反过来使Jekyll成为GitHub Pages的官方认可的生成器。因此,如果您正在为GitHub构建项目并想要创建演示页面,那么Jekyll无疑是最佳选择。
另一个基于Ruby的网站生成器是Middleman,与Jekyll的观众略有不同。Middleman并不是一个静态的站点/博客平台,而是面向具有静态内容的登陆页面和文档页面。
Middelman运行ERB模板,但也可以支持Liquid模板。对于静态网站来说,感觉就像Ruby on Rails。文档非常干净,如果你有足够的热情尝试它,甚至还有一个Middleman扩展目录。
Node.js的粉丝应该看一下Harp的静态网站生成。Harp将自己打造成一个“静态网络服务器”,为Jade,EJS,CoffeeScript,Sass / Less以及Markdown生成的网站提供服务。
Harp可以通过自己的Harp Web服务器在本地提供内容。Node.js为基于Web的应用程序提供了令人难以置信的强大功能,这也是许多开发人员在没有Node Package Manager的情况下无法生存的原因。
Harp模板依赖于嵌入式JavaScript,其行为类似于嵌入式Ruby。如果您已经熟悉JavaScript,那么Harp可能就是您的选择。快来看看Harp FAQ,了解更多信息。
Hugo是一个相当新的,是使用Go编程语言运行的最大的站点生成器。这使得它非常容易配置,因为您不需要Ruby或Node来运行Hugo。
但是如果你还不熟悉Go,那么Hugo可能会有一个陡峭的学习曲线。它在使用Go构建的包模板上运行主题。那些有耐心选择这个新框架的人会发现Hugo对静态内容网站的生成非常快速和干净。
Metalsmith站点生成器基于一系列插件构建,用于将功能链接在一起。这在创建新的静态网站时提供了很大的灵活性。
一切都在Node.js 上运行,GitHub页面有很多安装信息。请注意,对于具有JavaScript / Node体验的人或者真正想要学习的人来说,这更为可行。它不适合胆小的人,但确实提供了最大的定制和控制功能。
虽然Brunch在技术上是一个构建工具,但对于喜欢坚持使用Node.js的JavaScript开发者来说,它可能是另一种选择。早午餐类似于Grunt或Gulp,但它将预处理代码的能力带入静态网站。
如果您正在寻找一种不仅仅提供静态站点生成的工具,那么这将是一个很好的选择。当然它可以通过npm安装,并在GitHub上免费提供所有源代码。
如果您正在寻找带有动画滑动面板的动态制作着陆页,那么Slides就是您的最佳选择。这是专门为想要通过手工挑选自定义动画,背景样式和排版来推销自己的单页网站的开发者而制作的。
该框架完全响应并且符合HTML5 / CSS3。它还带有一个后端生成器,用于从一些强大的功能中自定义您自己的模板。
每个创业公司都知道时间是成功的关键因素。这就是为什么使用Startup Framework构建静态网页与动态后端相比可能会出乎意料地有利。
Startup Framework包括预构建的组件,如全屏面板,定价表,地图和缩略图库。在没有花费过多时间设计或编写代码的情况下,这是将登录页面或启动网站联机的最快捷方式。
静态网站有充分的理由重新流行起来。任何喜欢网络开发的人都应该花时间玩至少一台发电机来了解它是如何工作的,以及为什么这么多人都涌向静态发电机。
静态站点可以快速提供内容,并提供更好的控制,而无需依赖数据库。但是,根据您正在构建的网站类型,静态网站可能并不总是最佳选择。为了了解它是否适用于未来的工作,熟悉新技术总是好的。如果这看起来像一个有价值的技能,那么看看上面列出的一个发电机并开始学习!
上海高端网站建设
3
s后返回登录3
s后返回登录