【问题标题】:PHP template system, image pathsPHP模板系统,图片路径
【发布时间】:2011-05-22 10:57:08
【问题描述】:

我正在用 PHP 制作一个基本的模板系统,问题是:

我有一个主请求处理程序,从那里加载和处理所有内容,但因此我下载的 CSS 模板中的路径不再正确。

例子:

<img src="assets/images/contact.gif" />

必须是:

<img src="templates/grey-box/assets/images/contact.gif" />

有没有办法解决这个问题,PHP 明智的?

【问题讨论】:

  • 你能告诉我们css/php文件的来源吗?
  • mediafire.com/?43w1kgtcpijj8er 现在已损坏(“无效或已删除文件”)。

标签: php image templates file path


【解决方案1】:

别偷懒

  1. 始终使用绝对路径

  2. 让它明确,而不是一些肮脏的黑客。这将是一场支持噩梦。

  3. 您可以使用一些辅助变量,例如$tpl_assets_path,并在模板中使用它。

绝对路径从/ 开始,其中/ 指定web-seite 根。 您的 HTML 页面上的每条路径都应该是。

所以,模板应该是

<img src="/templates/grey-box/assets/images/contact.gif" />

<img src="<?=$tpl_assets_path?>images/contact.gif" />

【讨论】:

    【解决方案2】:
    define('HTTP_SERVER', 'http://www.myhomeurl.com/');
    <img src="<?php echo HTTP_SERVER?>assets/images/contact.gif />
    

    【讨论】:

    • 这仍然需要对每个链接进行手动更改,这并不比手动更改更好。
    【解决方案3】:

    来了

    $imgarray = array('assets','script','css');
    $tpl = '/templates/grey-box/';
    foreach($imgarray as $i){
      $tpldir = $tpl.$i;
      $str = preg_replace("/([^\/])($i)([\/])/i","\$1$tpldir\$3",$str);
    }
    

    【讨论】:

    • 这是更多的文件格式,我想这家伙希望能够轻松更改路径而不是文件格式
    猜你喜欢
    • 2013-07-16
    • 1970-01-01
    • 2020-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多