【问题标题】:Prestashop 1.6 CCC css new file in cache each timePrestashop 1.6 CCC css 每次缓存中的新文件
【发布时间】:2017-11-13 15:26:40
【问题描述】:

我不知道 prestashop 是如何工作的。我是一名全栈开发人员,我需要解决 prestashop 项目中的问题。

我使用由其他开发者修改的主题“sns_kanta”。

当我在仪表板中使用 CCC 选项启用 css 缓存时,每次用户加载页面时,都会在主题的缓存文件夹中创建一个已编译的 css 文件。 1 次页面浏览 = 1 个新文件。

很多次之后......这会产生 28 GB 的无用数据。编译它的时间是没用的。

有人有想法吗? 看看问题出在哪里的起点?调试它。

我尝试检查 prestashop 文档并尝试查看为什么每次都编译 css ...

我知道没有访问权限和所有数据并不容易,但是如果您有想法,要检查的文件,...

提前多谢

【问题讨论】:

  • 检查主题配置,prestashop生成一个文件,停止。如果在其中一个 css 文件中进行了编辑,使该文件被压缩,则在这种情况下,prestashop 会生成一个新的 css 压缩文件。
  • 感谢您的回复。我不确定你想说什么。在主题配置中,我没有任何 CSS 选项。每次可以编辑哪个文件?
  • 对不起,我太含糊了。您必须检查模板(在您的情况下为 sns_kanta)是否有一些模块允许您配置“事物”(颜色、内联 css、内联 js 等)......通常这些模块非常非常糟糕,并且也许在您的情况下,他们在每次页面加载时都会编译 css,因此,首先检查是否有“人性化”选项可以禁用它,否则您必须在模块代码中“导航”并找出有罪
  • 我会看的。感谢您的提示。但是CCC如何连接所有文件?过程是什么?我没有找到解释的链接。要编译的文件列表在哪里?还有其他提示/想法吗?

标签: css caching sass prestashop prestashop-1.6


【解决方案1】:

你应该看看classes/controller/FrontController.php 中的displayHeader() 方法。对于每个页面,此方法将检查CCC 是否被激活,并相应地将一个或多个css 文件分配给您的页面标题。

如果CCC被激活,则调用classes/controller/Media.php中的方法cccCss()。您可以调试此方法以查找自上次页面加载以来已更改的文件。

【讨论】:

  • 我已经检查过了。我可以看到此功能已弃用。该网站使用“显示”功能。我可以看到 3 个文件、2 个 google 字体和一个名称随时更新的文件:“themes/sns_kanta/cache/v_58054_eb3d90ef01782965507d90a10c5a7c8a_all.css”。键“58054”已经随时递增。我没有找到这个文件是在哪里生成的......
  • 然后就可以调试FrontController类的addMedia方法:var_dump($media_uri);var_dump(debug_backtrace());(或者使用xDebug;))
  • 对不起,我没看错,我发现问题出在哪里了。
【解决方案2】:

我在主题选项中有一个选项,例如:-> 高级设置-> SCSS 编译-> 始终编译

我将其更改为仅在未找到 css 文件时。

浪费了无用的时间。

感谢您的帮助,抱歉。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-17
    • 2017-01-05
    • 2014-12-21
    • 1970-01-01
    • 2015-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多