【问题标题】:Load centralized HTML and CSS files加载集中的 HTML 和 CSS 文件
【发布时间】:2014-08-31 17:26:20
【问题描述】:

我正在单个服务器上构建站点,并希望在所有站点中使用一些集中的 HTML 和 CSS 文件,以便我可以对会影响多个站点的单个 HTML 或 CSS 进行更改。

集中文件位于我服务器上的 /home 文件夹中(在域文件夹之上)

示例文件夹结构:

/home
/home/templates
/home/templates/template1.html
/home/templates/css/style.css

示例域(mydomain.com):

/home/mydomain/public_html/index.php

当我从 mydomain 文件夹中的 index.php 调用 template1.html 文件时,它会加载 html 文件,但由于 template1.html 引用 css/style.css 作为样式文件,它会尝试加载文件就好像它是 mydomain.com/css/style.css 而不是来自 /home/templates 文件夹。

我知道它正在做它应该做的事情,但是有没有办法可以使用 htaccess 规则或其他东西将它重定向回 /home/templates 文件夹?或者有没有办法可以从 html 文件中正确引用 CSS 文件的位置?

【问题讨论】:

标签: php html css .htaccess vps


【解决方案1】:

在您的 DOCUMENT_ROOT/.htaccess 文件中包含此代码:

RewriteEngine On

RewriteRule ^((?:css|js|images)/.+)$ /home/templates/$1 [L,NC]

【讨论】:

    【解决方案2】:

    我采取了稍微不同的方法来让它发挥作用。

    我在我的 htaccess 中添加了一行以将 style.css 重定向到 style.php:

    RewriteRule ^style\.css$ style.php [L]
    

    style.php 然后从配置 PHP 文件中的变量“template3.html”中获取模板的名称,并将其转换为“template3.css”(使用 str_replace)。

    然后它包含“/home/thin/templates/template3.css”文件。

    style.php 还包含以下行以强制将内容视为 CSS:

    header("Content-type: text/css; charset: UTF-8");
    

    【讨论】:

      猜你喜欢
      • 2020-05-22
      • 2016-03-14
      • 2021-12-15
      • 2022-01-16
      • 1970-01-01
      • 2017-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多