许多年来,发布一个网站是许多用户无法企及的。HTML创作、托管帐户和管理托管文件的更新对于一般的非技术人员来说太多了。现在,用户可以注册Tumblr帐户,并在几分钟内输入他们的第一篇文章。
随着用户变得越来越成熟,像WordPress这样的博客平台为他们的内容提供了所有权。但是WordPress和它的同行们仍然有许多活动部件。对于一个只想写博客却仍然拥有它的人来说,这是一种过度的杀伤力。最近的答案是静态站点生成器(SSG)。让我们来探讨一下为什么您可能希望在下一个在线项目中考虑一个。
Web上的第一个页面就是这样的:有人编写为HTML文件并上传到服务器的单个页面。现代的CMS(contentmanagementsystem)将内容呈现为一个页面,而实际上它将标记、数据库内容和实时计算混为一谈。它们是帮助用户创建内容、存储内容,然后提供给网站访问者的web应用程序。
相反,静态站点生成器是发布工具。它们与Adobe Acrobat等工具没有什么不同,它采用可编辑格式(例如Microsoft Word),并将其转换为易于使用的格式(.PDF)。在这种情况下,SSG正在执行以下基本任务:
在下一节中,我们将研究SSGs的“静态”特性相对于今天的cms提供的一些优势。
对于那些曾经在CMS中工作的人,比如WordPress,下面的一些看起来是一个很大的改变。但是,它们使一些类型的网站的**和维护变得容易得多。让我们看看这些优点。
下面的部分以Jekyll静态站点生成器的命令和输出为例。如果选择不同的SSG,命令将不同,但概念相似。
与“传统”CMS相比的一个主要区别是,您正在本地计算机上安装静态站点生成器。例如,在Ubuntu机器上启动并运行Jekyll就像下面的命令一样简单:
sudo apt-get install jekyll然后启动一个新项目:
jekyll new mytestsite您将在“mytestsite”目录中创建一个新站点,其中包含许多默认文件。注意“\u posts”目录,它包含一个标记文件。
静态站点生成器设计用于脱机本地内容。创建新帖子不需要实时的互联网连接。您可以起草内容,然后稍后运行“build”命令来创建将进入Web的post/页面。如果你习惯于离线博客编辑,比如BlogDesk,那就很相似了,除了不是一次推一篇文章,而是在本地构建整个网站。
接下来,在上面提到的“\u posts”文件夹中创建内容。准备就绪后,可以通过从项目目录执行以下命令来构建站点:
jekyll serve这将在子文件夹中构建整个站点,如下所示:
完成后,您还可以使用Jekyll的内置web服务器查看此网站http://localhost:4000.
如果您喜欢您看到的内容,您可以简单地将“U sites”文件夹中的所有文件上载到web主机。您的网站已准备就绪!
此外,您还可以以比原始HTML更友好的格式创建这些帖子。Markdown是最受支持的,但是许多ssg也可以通过开箱即用或插件来接受其他ssg。Jekyll的插件包括Asciidoc、orgMode或structuredText等选项。如果您正在使用这些其他标记语言之一,则只需快速更改配置或安装插件即可。
有趣的是,大多数SSG也接受HTML作为输入。”等等,“你是说。”我以为转换成HTML是整件事的重点!”但考虑到这一点:SSGs不直接支持的其他格式通常可以导出为HTML。设想一个工作流,您(或其他作者)在LibreOffice中使用ODT进行创作,ODT被转换(例如通过Pandoc)为原始HTML,然后由SSG进一步处理和设置样式。这需要一些肘部润滑脂,但这是完全可能的!
如上所述,大多数ssg还支持扩展或插件来提供额外的功能。从自动向站点添加数据(例如,基于日期的URL或相关帖子)到更多类似于CMS的功能,如用户身份验证或评论。DocPad SSG的一个插件甚至提供了一个管理面板!
在从数据库获取内容和运行任何包含的代码之间,加载一些CMS页面可能会比较缓慢。相比之下,静态站点已经采用浏览器将使用的格式。唯一的延迟是web服务器发送页面所需的时间,以及浏览器呈现页面所需的时间。但这两件事CMS驱动的网站也必须做到。
另外,由于SSGs的输出是普通的HTML、CSS和Javascript。几乎所有的网络服务器都可以毫无问题地提供这些服务(以及任何图像)。这意味着如果您有自己的服务器(比如VPS),那么您可以灵活地部署一个更轻的web服务器,比如lighttpd或nginx。
CMS的多个移动部件,如WordPress、Drupal等,为Interwebs的恶棍打开了攻击载体。访问PHP文件可使攻击者在您的站点上执行自己的代码。一个受损的数据库给电子商务供应商带来了麻烦(因为他们在一个更复杂的CMS中)。
另一方面,SSGs的所有编程魔法都发生在本地机器上。因此,您最关心的是文件权限。意外地使一个文件可写入世界将是一件“坏事”,但这也是可能发生在CMS上的事情。但是,由于静态站点中没有任何可执行代码,并且不访问数据库内容,因此可以减少站点安全性中潜在漏洞的数量。
如果你曾经管理过一个网站,你就知道看到“升级可用”时会有什么恐惧时刻管理面板中的消息。当然,您将在您的登台环境中测试它,但是您永远不会真正知道一个代码修复或奇怪格式的用户注释是否会使它全部崩溃。
将其与静态站点进行比较。虽然SSG工具的新版本可能会提供,但这些不会对您的实时站点产生任何影响。它将继续蹒跚前行,忘记任何可能发生或不可能发生的升级。与此同时,你可以升级你的SSG,发布一个新版本的站点来测试它,最后实时迁移新版本。cmse也可以做到这一点,但必须考虑数据库回滚以及新的用户生成的内容是否会丢失。
并非所有站点都适合静态站点生成器。如果你要建立一个小型的个人网站,或者像一个传统的博客(比如日报),SSGs的简单性可能适合你。基本上,如果您正在寻找将文本和图形内容单向发布到web的方法,静态站点是一个不错的选择。
但大多数现代网站并不是美化的在线期刊。如果您的站点现在或将来需要以下任何一项,您应该考虑静态站点生成器附带的注意事项。
总体而言,静态站点生成器是发布工具,适合用户寻找一种简单的方法来创建一些内容并为web做好准备。
你怎么认为?你愿意让一个静态站点生成器旋转一下吗?认为CMS仍然是一条路要走吗?让我们在下面的评论中讨论一下!
图片来源:mihalec viaShutterstock.com网站
...件可以在线访问的实际过程。还没有?考虑使用静态站点生成器。我以尼古拉为例。 ...
... 给定CMS的编程语言还考虑了它所支持或完全需要的数据库。PHP对MySQL有很好的支持,尽管使用它的cmse通常也可以使用PostgreSQL或SQLite。同样,dnncms支持microsoftsqlserver,而Alfresco支持企业级和Java...
... 如果你已经远离像WordPress这样的cmse,现在使用静态站点生成器,这是一种可行的技术。 ...
...的简单站点,那么可能有一个更好的替代方法:静态站点生成器。有了静态站点,您就可以利用GitHub Pages和Netlify Drop等无限免费的web托管服务。 ...
...少16GB),因为存储空间是web服务器的关键要求。(还要考虑Pi的一些外部存储!) ...
...网站加载速度慢于3秒,人们甚至可能在主页加载之前就放弃了它。对图片使用错误的格式很容易使你的网站膨胀,并破坏原本良好的浏览体验。 ...
...EO的具体反馈。Joomla确实包含SEO插件,包括Easy前端SEO和SEO生成器,但Yoast优于这些选项。 ...
...果你坐下来想一想,你会立刻意识到你刚刚创建的文件是静态的,这意味着你在item标签中写的条目将保持不变,不会改变以反映你网站的最新内容。所以在总结之前,我们有几个问题需要解决。 ...