有没有办法为Prestashop中的所有页面填充缓存?

时间:2016-05-24 11:55:43

标签: performance caching prestashop

我试图让我的prestashop网站更快。我的问题是:有没有办法让AT ONCE缓存所有产品页面。我已经启用了缓存。但是,如果您第一次访问页面,则需要花费太多时间来加载。然后,第二次访问要快得多。

我没有在管理页面中看到任何功能来获取此功能。

感谢。

1 个答案:

答案 0 :(得分:1)

没有,但你可以创建一个脚本,它将加载你网站上的每个产品页面。

将此脚本放在Prestashop安装/test.php的根目录下。并通过浏览器www.mywebsite.com/test.php调用它:

<?php

// The script will not timeout for 10 hours
set_time_limit(36000);

// Set the right path to config.inc.php
include_once (__DIR__ . '/config/config.inc.php');

// Set a default controller to remove unwanted warnings.
$context = Context::getContext();
$context->controller = new FrontController();

// Get all products
$products = Product::getProducts(1, 0, 1000000, 'id_product', 'DESC', false, true, $context);

foreach ($products as $product)
{
    // Load the product page
    $link = $context->link->getProductLink($product['id_product']);
    file_get_contents($link);

    // Print this to screen right away
    print "loaded: " . $link . "<br />";
    ob_flush();
    flush();

    // Stop for 0.2 seconds
    usleep(200000);
}