Concrete5 附加路径

Concrete5 Appending Paths

我想 post 向社区求助,试图解决我最近遇到的关于引入自定义字体的问题。

当我最初设置我的网站以尝试导入自定义字体时,我遵循了此处的指南 (http://www.concrete5.org/documentation/how-tos/designers/how-to-add-a-custom-font-face-to-your-theme/),幸好我能够提取我需要的 fonts.css 文件.

不幸的是,就在最近,我继续对我使用的主题进行了一些自定义(在“页面设置”>“设计”下)。然而,在我保存这些更改后,我注意到我的字体不再被引用,并且在尝试提取 fonts.css 文件时出现 404 错误。

现在在我的头文件中,我参考了 fonts.css 文件,该文件在我对主题进行自定义之前一直有效。现在它似乎改变了这些页面或至少头文件所在位置的 'location/directory'。我放入头文件的内容与附加内容的区别如下。

之前:

<link rel="stylesheet" type="text/css" href="<?php  echo $this->getStyleSheet('../fonts/raleway/fonts.css')?>" />

现在:

<link rel="stylesheet" type="text/css" href="/index.php/ccm/system/css/page/157/../fonts/raleway/fonts.css" />

特别是,我注意到

/index.php/ccm/system/css/page/157/

现在正在追加,这显然导致引用失败。我的问题是,有什么方法可以重置 concrete5 以便停止附加此引用,或者有什么方法可以在我的头文件中设置直接路径(即 /application/files/cache/css/fonts/raleway/fonts.css)?

至于其他信息,我确实适当地启用了 Pretty URL(据我所知)。而且我已经将所有页面的位置设置在它们自己的页面中,而不是全部从 index.php 页面构建。

如果你们需要我提供任何信息,请随时告诉我。再说一遍,如果有什么方法可以解决这个问题,我将不胜感激!

尽管名称不同,具体 5.7 及更高版本中的 getStylesheet 仅适用于 LESS 文件,不适用于 .css 文件。它也没有设置为处理文件路径中的“..”。如果您将 .css 文件传递​​给 getStylesheet,它将 运行 通过 LESS 解析器传递文件,这可能会对内容进行双重编码。您可能不会注意到任何问题,但最好尽可能完全避免它。

以下是我将自定义字体添加到我的主题的方法。

首先,确保您的主题目录包含 "fonts/fonts.css" 文件,其中包含您的自定义字体指令。

然后,以这种方式将文件包含在您的主题中:

<link rel="stylesheet" type="text/css" href="<?php echo $view->getThemePath()?>/fonts/fonts.css" />

只有当 "fonts" 该目录出现在主题目录的根目录下时,这才有效——但这应该是您需要做的全部。