【问题标题】:linking css files in php在php中链接css文件
【发布时间】:2015-02-26 15:48:06
【问题描述】:

我是 php 新手,我正在做一个项目,我在链接 css 和 js 文件时遇到了一些问题。 现在,当项目执行时,首先加载 index.php(位于根目录中),其中包括 home.php 并且其中的所有内容都正确执行。 但是,一旦您单击“主页”上的“关于”链接,页面就会重定向到 about.php(位于 Presentation/about.php 内),此处 css 和 js 链接失败...... .
执行 index.php 成功获取 css 链接(链接如下)
<link href="css/bootstrap-theme.min.css" rel="stylesheet">
但后来当页面被重定向到 about.php 它期望链接是 <link href="../css/bootstrap-theme.min.css" rel="stylesheet">
我为这些链接使用了一个通用文件,我将所有链接保存在 header.php 中(位于 Presentation/Template/header.php)
我还在 config.php 中定义了所有路径(位于 inc/config.php)
我在 config.php 中定义了如下路径

// SITE_ROOT contains the full path to the RichTongue folder
define('SITE_ROOT', dirname(dirname(__FILE__)));

// Application directories
define('PRESENTATION_DIR', SITE_ROOT . '/Presentation/');
define('TEMPLATE_DIR', PRESENTATION_DIR.'Template/');
define('BUSINESS_DIR', SITE_ROOT . '/Business/');
define('CSS_DIR', SITE_ROOT. '/css/');
define('FONT_DIR', SITE_ROOT . '/fonts/');
define('IMAGE', SITE_ROOT . '/images/');
define('JS', SITE_ROOT . '/js/');


所以我尝试通过以下方式链接css
<link href="<?php echo CSS_DIR ?>bootstrap.min.css" rel="stylesheet" >
现在上面的代码在 chrome 中给了我一个错误,上面写着
Not allowed to load local resource: file:///C:/xampp/htdocs/RichTongue/css/bootstrap.min.css home.php:13


现在上面错误中的路径(file:///C:/xampp/htdocs/RichTongue/css/bootstrap.min.css)是正确的,但它不会加载文件并给出错误(上面指定的错误)
问)我该怎么办?在php中链接css和js文件的正确方法是什么? 需要帮助

【问题讨论】:

标签: javascript php html css


【解决方案1】:

为 SITE_ROOT 设置 URl 路径

如果你的项目路径是 C:/xampp/htdocs/RichTongue/css/bootstrap.min.css

所以用下面的行改变

define('SITE_ROOT', 'http://localhost/RichTongue');

【讨论】:

  • 但这可能会导致在 Web 服务器上托管网站时出现问题?
  • 只要网站位于网络服务器上的“RichTongue”文件夹中,这应该可以工作(实际上您可以路由,但要保持简单)
  • 是的,它的快速修复兄弟,您需要在使用域 URI 托管网站时进行更改
  • 是的,我试过了,但我得到一个错误,上面写着:require_once(): http:// wrapper is disabled in the server configuration by allow_url_include=0 in '
  • 某些 php 文件未正确包含请参阅此链接可能对您有用stackoverflow.com/questions/23285503/…
【解决方案2】:

使用绝对路径链接您的 css 和其他资源似乎是您的简单解决方案。

绝对路径来自您网站的根目录:C:/xampp/htdocs/RichTongue

你可以使用/css/bootstrap.min.css代替file:///C:/xampp/htdocs/RichTongue/css/bootstrap.min.css

所以你必须修改

define('CSS_DIR', SITE_ROOT. '/css/');

define('CSS_DIR', '/css/');

其他资源(js、字体等)也一样

示例结果:

<link href="/css/bootstrap-theme.min.css" rel="stylesheet">

【讨论】:

    【解决方案3】:

    如果你有一个名为 css 的文件夹,你可以使用如下的真实路径:

    define('CSS_DIR', realpath(dirname(__FILE__).'/css'));
    

    然后你会像这样使用那个常量路径:

    echo CSS_DIR."/style.css"; 
    

    【讨论】:

    • 您在目录“css”之后或文件名之前忘记了一个“/”。
    • 为什么投反对票是正确的,如果不是,请告诉我要修复它
    【解决方案4】:

    尝试这样使用它:

    $SITE_FOLDER_NAME = "demo/";
    define('SITEURL', 'http://'.$_SERVER['SERVER_NAME'].'/'.$SITE_FOLDER_NAME);
    define('SITEURL_CSS', SITEURL.'css/');
    

    【讨论】:

    • 你在css之前或$SITE_FOLDER_NAME之后忘记了一个'/'
    【解决方案5】:

    ./assets/CSS/filename.css 为我完成了这项工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-10
      • 1970-01-01
      • 1970-01-01
      • 2014-04-11
      • 2016-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多