【发布时间】:2017-01-20 15:01:52
【问题描述】:
我正在尝试在我的 Concrete5 网站的自定义块中加载 CSS 文件,但遇到了问题。我的 css 的导入如下所示:
$layout_dir = dirname(__FILE__) . '/';
<link href="<?php echo $layout_dir; ?>form.css" rel="stylesheet" type="text/css">
哪个会尝试使用此 url 导入我的样式:
http://pragmatic.dev/Users/brady/Code/pragmatic/public/packages/theme_caboodle/blocks/hero_block/form.css
这个问题是我需要排除的路径:
/Users/brady/Code/pragmatic/public
我的路径的一部分,所以路径的基础是我的项目的根,如下所示:
/packages/theme_caboodle/blocks/hero_block/form.css
如何将我的导入设置为仅包含来自项目根目录的路径?
/packages/theme_caboodle/blocks/hero_block/form.css
我还需要这条路径在放在服务器或其他任何人的本地机器上时不会中断。所以使用这个块的另一个用户我有不同的文件夹结构,因为他们是从市场上下载的,所以我需要记住这一点。
到目前为止,这是我的解决方案,但我发现它非常糟糕:
$baseDir = getcwd() . '/';
$fullDir = dirname(__FILE__) . '/';
//use this path for importing
$blockDir = str_replace("$baseDir","",$fullDir);
【问题讨论】:
-
$layout_after = explode("/public", $layout_dir)[1] 。 "/";
-
你的解决方案没问题。