【问题标题】:How do I change all the asset paths in a html/php file when including it?包含时如何更改 html/php 文件中的所有资产路径?
【发布时间】:2012-03-29 12:20:35
【问题描述】:

这有点难以解释,但我会试一试。假设我在名为 myFile.html 的 HTML 文件的标题中有这个:

<!doctype html>

<head>

<link rel="stylesheet" href="css/reset.css" />
<link rel="stylesheet" href="css/style.css" />
<script src="js/hovers.js"></script>
<link rel="stylesheet" href="css/highlight.css">

</head>

我现在想将此文件包含在一个 php 文件中,比如说 index.php。但是,我所有的资产(css、js 等)都存储在一个名为 assets/ 的文件夹中。

在包含(或之前?)这个 html 文件之后,有没有办法将所有资产路径更改为指向 assets/*.例如,“css/reset.css”将更改为“assets/css/reset.css”等等。请注意,这不仅限于标题中的这些行,还包括图像元素等内容。

如果这令人困惑,请告诉我,我会再次尝试解释!

干杯:)

【问题讨论】:

    标签: php html assets


    【解决方案1】:

    我通常为这样的事情定义一个常量,然后可以通过配置文件轻松更改它。这确实意味着遍历您的模板文件并添加这个常量变量,但之后它变得非常容易更改。

    所以你的文件应该是这样的:

    <?php
    require_once('config.php');
    include('header.php');
    

    config.php 会是这样的:

    <?php
    define('ASSETS_ROOT','/assets/');
    

    header.php 会是这样的:

    <!doctype html>
    
    <head>
    
    <link rel="stylesheet" href="<?php echo ASSETS_ROOT; ?>css/reset.css" />
    <link rel="stylesheet" href="<?php echo ASSETS_ROOT; ?>css/style.css" />
    <script src="<?php echo ASSETS_ROOT; ?>js/hovers.js"></script>
    <link rel="stylesheet" href="<?php echo ASSETS_ROOT; ?>css/highlight.css">
    
    </head>
    

    【讨论】:

    • 我想到了,我希望可能有另一种方式,但我想没有。谢谢!
    • 我猜你可以使用缓冲区和正则表达式或 html 解析器来完成,但这些方法会变得非常混乱。
    • 同意,使用常量更简洁:)
    猜你喜欢
    • 1970-01-01
    • 2013-10-10
    • 1970-01-01
    • 1970-01-01
    • 2022-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多