你只需导出俩次
— 焉知非鱼我的Yancy文档站点已经构建,具有自定义登录页面和POD查看器,我只需要部署该站点。我可以使用hypnotoad部署网站,Mojolicious的preforking服务器进行热部署,但这需要我有一台服务器并保持在线。如果我可以像Github一样部署静态网站,就像所有酷炫的人一样,那就好多了。
但要做到这一点,我需要把我的动态网站变成一个静态网站,这是不可能的!真的是吗?为什么我问我自己,我就是那个开辟道路的人:Mojolicious导出命令。
export 命令将一组路径作为输入,获取这些页面,并将结果写入目录。然后它会查看这些页面上的所有链接并编写这些页面。通过这种方式,它将整个 Mojolicious 网站导出为静态文件。
我需要做的就是能够使用 export 命令来安装它:
$ cpanm Mojolicious::Command::export
一旦安装完毕,我们现在在我们的应用程序中有了 export 命令,我可以像任何其他 Mojolicious 命令一样使用它。
$ ./myapp.pl export
默认情况下,export命令尝试导出主页(/
)并从那里递归工作。如果我的页面没有从其他地方链接,我应该(a)可能添加一些指向该页面的链接,但是(b)可以将它添加到要导出的页面列表中:
$ ./myapp.pl export / /private
由于我在我的个人网站的目录下托管这个网站,我需要使用该--base
选项重写所有内部链接到正确的路径,我可以使用该--to
选项直接写入Web服务器的目录:
$ ./myapp.pl export --base /yancy --to /var/www/preaction.me/yancy
而且,如果我愿意,我可以使用Mojolicious Config插件 来更改默认设置,包括要导出的页面,导出目录和 base URL。
最好的部分是export命令处理重定向。因此,当我们使用PODViewer插件并重定向到MetaCPAN时,页面会根据重定向的位置进行更新!
将来,如果将此命令设置为插件,以便它可以具有用于自定义导出内容的钩子或对断开链接的附加检查,那将是很好的。如果有人有兴趣帮助完成这项工作,请告诉我,我可以帮助他们开始工作!
现在,通过Yancy CMS,PODViewer插件和Mojolicious导出命令,我为Yancy提供了一个好看的文档网站!查看完整的应用程序。