radmen/lassy

此包已被弃用且不再维护。未建议替代包。

为Laravel4的懒静态网站生成器

1.1.0 2014-05-05 21:16 UTC

This package is auto-updated.

Last update: 2022-02-01 12:26:19 UTC


README

Build Status

Lassy是一个懒静态网站生成器。这意味着每个请求(好吧,不是每个...请查看过滤器部分)都将生成一个包含内容的HTML文件。

下一个请求将被重定向到该文件。

安装

radmen/lassy添加到composer.json

{
  "require": {
    "radmen/lassy": "1.1.*"
   }
}

然后在app/config/app.php中添加

  • 'Radmen\Lassy\LassyServiceProvider'providers
  • 'Lassy' => 'Radmen\Lassy\Facade'aliases

并发布配置:php artisan config:publish radmen/lassy

重写

Lassy只生成HTML文件。所有请求都必须重写到这些文件。以下是一些重写配置的示例。

请注意,_static只是示例目录名。它可以在配置文件中更改。

Apache

RewriteCond %{DOCUMENT_ROOT}/_static/%{REQUEST_URI} -f
RewriteRule ^(.*)$ /_static/$1 [QSA,PT,L]

RewriteCond %{DOCUMENT_ROOT}/_static/%{REQUEST_URI}/index.html -f
RewriteRule ^(.*)$ /_static/$1/index.html [QSA,PT,L]

Laravel

如果您在服务器重写方面有问题(这经常发生),您可以通过Laravel应用程序提供服务静态文件。

app/filters.php中添加

App::before(function($request)
{
  $path = Lassy::getFilePath($request);

  if(true === is_file($path)) 
  {
    Lassy::disable();
    return file_get_contents($path);
  }
});

过滤器

在某些情况下,不应生成静态文件。这时过滤器就派上用场了。
过滤器是一个返回布尔值的闭包。如果是FALSE,Lassy将被禁用。

Lassy提供了一些基本的过滤器

  • Radmen\Lassy\Filter\AjaxRequest检查请求是否为AJAX调用。如果是TRUE,则禁用Lassy
  • Radmen\Lassy\Filter\GetRequest仅对GET请求启用Lassy
  • Radmen\Lassy\Filter\HtmlResponse仅对有效的(响应代码 = 200)HTML响应启用Lassy
  • Radmen\Lassy\Filter\QueriedRequest当请求中有查询数据时禁用Lassy

过滤器可以在包配置文件中指定。

可以在请求期间手动启用/禁用Lassy。要做到这一点,请在代码中运行Lassy::enable(),或Lassy::disable()

清除文件

如果您想删除生成的文件,只需在控制台中运行php artisan lassy:clear

许可证

Lassy包是开源软件,许可协议为MIT许可