2016-10-02 31 views
1

站点设置Advagg CSS聚集/压缩产生CORS块字体负载

的Drupal 7.50

Advagg模块

服务器设置

为了允许 “零停机” 过程中更新和实现有两个服务器(使用Apache2配置),其名称为a.orgb.org。这些域是不能通过公众访问的,您必须在本地主机文件中配置它们以访问它们中的每一个。在开发过程中,“实时站点”和“开发站点”的角色通过评论/取消注释他们的服务器配置的标记来在其中一个和另一个之间切换。那ServerAlias是该网站的真正的域名,truedomain.org

问题

为了加快Drupal的我想通过Advagg模块做CSS聚集和压缩。在开发网站上工作时(此时b.org),它工作正常。字体加载或类似的东西没有问题。当我通过取消ServerAlias标记使b.org成为活动站点时,发生问题。访问该网站时,由于CORS而被阻塞,导致出现大量字体加载错误。似乎Advagg试图从它的b.orgServerName而不是通过它的ServerAlias标记加载它们。

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

唯一的出路我认为就是允许只是字体CORS,使得:

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

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

+1

http://drupal.stackexchange.com/a/188632 – CBroe

回答

0

@ CBroe的评论让我知道答案(谢谢)。以为我会在这里写出来,并给出一些额外的内容以及如何解决它们。

管理/配置/开发/性能/ advagg,在那里你会发现在标题之下“朦胧诗选项”收缩的菜单,你必须检查以下选项:“不要跑CSS网址()通过files_create_url值()”

Obscure options menu

即固定我CORS字体负载问题。 第二个问题出现时,字体根本没有加载和我的网站上的文字恢复到一些默认字体。发生这种情况是因为在CSS压缩 Drupal删除'',并且字体名称(aaag!)上有一个华丽的空间。当然,一旦''从font-face规则中的url()中移除,字体就不存在了。所以我不得不改变字体名称和规则访问该名称没有那个空间

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

然后,问题就完成了,yay。