boldenamsterdam / htmlcache

Cache pages to HTML and boost website performance on Craft CMS 3
MIT License
31 stars 21 forks source link

HtmlCahe caches only one page and shows this pages to all pages #31

Open kruglikoves2 opened 4 years ago

kruglikoves2 commented 4 years ago

We had the next problem: HtmlCahe caches only one page and shows these pages to all pages. We had this problem. The problem was that to get request URL, the plugin uses request->getParam('p'). It's '' an empty string in our system occasionally. So we created "p" query string in our module to fix this problem.

And here is the code that did this:

class HtmlCachePluginBugFixer
{
    private $request;
    public function __construct(Request $request)
    {
        $this->request = $request;
    }

    // HtmlCache Plugin have the issue - it requires query parameter p with page url for work.
    // This method fixes this issue.
    public function fixMissingPParameterInRequest()
    {
        $uri = $this->request->getUrl();
        $requestQueryParams = $this->request->getQueryParams();
        $requestQueryParams['p'] = $uri;
        $this->request->setQueryParams($requestQueryParams);
    }
}

And here is how it executes in our module:

        $htmlCachePluginBugFixer = new HtmlCachePluginBugFixer(\Craft::$app->request);
        $htmlCachePluginBugFixer->fixMissingPParameterInRequest();
Coysh commented 3 years ago

I also have this problem - the above fix didn't work for me.

kruglikoves2 commented 3 years ago

I also have this problem - the above fix didn't work for me.

Strange. Worked for me. We've added the fix in our custom module code. Where did you added the fix code?