2015-04-24 90 views
1

我想发布到社区,努力尝试并锁定我一直在关于拉入自定义字体的最近问题。混凝土5追加路径

当我最初设置我的网站尝试导入自定义字体时,我在这里遵循了指南(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文件,直到我对主题进行自定义为止。现在看起来它改变了这些页面的位置/目录,或者至少是头文件。下面是我在头文件中的不同之处,以及附加内容。

前:

<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)在我的头文件?

至于其他信息,我确实有适当的漂亮的URL(据我所知)。我已将所有页面的位置设置在自己的页面中,而不是从index.php页面构建。

如果有什么你们可能需要我,只是随时让我知道。再说一次,如果有什么方法可以解决这个问题,我将不胜感激!

回答

1

尽管它的名字,具体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" /> 

如果“字体”的目录出现在你的主题目录内的根水平。这只会工作 - 但它应该是所有你需要做。

+0

对不起,我把答案标记为有用,这个帐户太少。但这工作得很好。再次感谢。没有意识到getStyleSheet通过LESS解析器运行它,这就是为什么该字符串被追加。对我来说,这似乎很奇怪,它在第一次尝试中起作用。 无论哪种方式再次感谢!非常感激。 – user3393973