Advagg CSS聚合/压缩在字体加载

时间:2016-10-02 19:50:30

标签: css drupal less

网站设置

Drupal 7.50

Advagg模块

服务器设置

为了在更新和实施期间允许“零停机”,有两个服务器(使用Apache2配置),名称为 a.org b.org 。这些是无法通过公共访问的域,您必须在本地主机文件中配置它们才能访问它们。在开发过程中,“实时站点”和“开发站点”的角色通过注释/取消注释其服务器配置的 ServerAlias 标记在一个和另一个之间切换。 ServerAlias 是网站的实际真实域名, truedomain.org

问题

为了加速Drupal,我想通过Advagg模块进行CSS聚合和压缩。在开发网站上工作时(这次 b.org ),它运行良好。字体加载或类似的东西没有问题。当我通过取消注释 ServerAlias 标记来切换 b.org 成为实时网站时,问题就出现了。访问该站点时,由于CORS阻止了大量的字体加载错误。似乎Advagg尝试从 b.org ServerName 而不是通过其 ServerAlias 标记加载它们。

字体导入在CSS文件中,它们是相对的,因为字体文件位于同一目录中。由于我的服务器设置,我无法使用绝对路径。

我看到的唯一出路是允许CORS仅用于字体,例如:

<FilesMatch ".(eot|ttf|otf|woff)">
  <IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
  </IfModule>
</FilesMatch> 

有没有人在Drupal中遇到过这种情况?有什么我可以使用Advagg配置来解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

@ CBroe的评论告诉我答案(谢谢)。我以为我会在这里写出来,并提供一些额外内容以及如何修复它们。

admin / config / development / performance / advagg ,在那里您会找到标题为“隐藏选项”下的折叠菜单,您必须检查以下选项:“不要通过files_create_url()”

运行CSS url()值

Obscure options menu

修复了我的CORS字体加载问题。当字体根本没有加载并且我网站上的文字恢复为某些默认字体时,出现第二问题。发生这种情况是因为在 CSS Compression Drupal删除'',并且字体名称(aaag!)上有一个华丽的空间。当然,一旦''在font-face规则中从url()中删除,该字体就不存在了。因此,我必须将访问该名称的字体名称和规则更改为没有该空间

一旦完成,即使清除缓存后,我也看到Drupal仍在发送 Advagg CSS压缩。为了解决这个问题,我删除了文件夹 sites / default / files / advagg_css 中的所有内容以强制使用新内容。

随之而来的是,问题已经完成了,是的。