所以基本上我使用的是drupal多站点。结构如下:
mywebsite.com: -- public_html/sites/default/
sub.mywebsite.com: -- public_html/sites/sub.mywebsite.com/
工作得很好(通过settings.php),但问题出现在主题化时。为了引用有效的图像文件,我必须使用drupal_get_path('theme','mythemefolder')
并且由于激活了“漂亮的网址”,我必须使用以下代码来引用图像文件:
$uri=$_SERVER["REQUEST_URI"];
$path=drupal_get_path('theme','mythemefolder')."/";
$real_prefix=$base_path; // global from drupal, equates to "/" as drupal resides in public_html folder.
$count=substr_count($uri,"/");
for ($i=0;$i<$count;$i++) $real_prefix.="../";
这样,我可以执行以下操作:
<script type="text/css">
#borderclass {
background-image: url('<?= $real_prefix.$path.'images/a_border_image.png'; ?>');
background-repeat: repeat-x;
vertical-align: top;
}
</script>
<div class="borderclass" width="10px" height="10px"><!-- my image border div --></div>
最好不必这样做。只需简单地引用本地站点文件夹...
因此,我可以通过上面引用的 PHP 编写:
<div style="background-image: url('<?= $path ?>images/a_border_image.png');"></div>
生成的 html 应该出现在 View Source 中,如下所示:
<div style="background-image: url('themes/mythemefolder/images/a_border_image.png');"></div>
并不是:
<div style="background-image: url('sites/sub.mywebsite.com/themes/mythemefolder/images/a_border_image.png');"></div>
是否可以配置我的服务器来做这样的事情?基本上,我宁愿让我的客户在使用他们自己的域或子域时甚至不知道服务器上存在“站点”目录。更不用说上面提出的主题问题了。