【问题标题】:PHP CodeIgniter CSSPHP CodeIgniter CSS
【发布时间】:2011-07-01 14:59:24
【问题描述】:

我从一个网站下载了一个 html 主题,并试图将它放入我的 codeigniter 项目中。我将下载的主题文件夹中的 .html 文件复制并粘贴到我的视图“index_v.php”中。我还将css文件夹直接复制到views文件夹中。 index_v.php文件这样调用.css文件

<link rel="stylesheet" href="style.css"> 

然而,当我加载页面时,它并没有加载 .css 文件。

【问题讨论】:

  • 如果直接调用样式表会发生什么?
  • 可以直接进入样式表链接吗?另外,是没有加载css还是没有加载样式表?当你加载页面时,你能在你的 html 中看到 标签吗?

标签: php html css codeigniter


【解决方案1】:

您可能遇到了相对路径的问题。如果你的 URL 是 /users/welcome/,它正在寻找文件 /users/welcome/style.css

解决方案:

  • 使用完整网址:&lt;link rel="stylesheet" href="http://example.com/style.css"&gt;

  • 使用 CI 的 link_tag() 将您的基本网址添加到路径

  • 使用绝对路径:&lt;link rel="stylesheet" href="/style.css"&gt;

如果您无法直接访问该文件,请检查您的 .htaccess 文件(如果您正在使用它)。大多数 CI 安装使用这样的东西:

RewriteCond $1 !^(index\.php|public|robots\.txt)
RewriteRule ^(.*)$ /index.php?/$1 [L] 

使用此规则,允许直接访问两个文件和一个目录(index.php,名为 public 的目录,robots.txt)。其余的路由通过index.php。

最好为所有静态文件(图像、css 等)创建一个目录,并将此目录名称添加到排除列表中。将这些文件保存在根目录中只会造成大量混乱。

【讨论】:

    【解决方案2】:

    不是这个

    <link rel="stylesheet" href="style.css">
    

    试试这个:

    <link rel="stylesheet" href="<?php echo base_url();?>"> 
    

    或者,如果您的 css 位于名为 css 的目录中:

    <link rel="stylesheet" href="<?php echo base_url();?>css/style.css"> 
    

    您的 Javascript 将以相同的方式工作

    【讨论】:

      【解决方案3】:

      您必须将该 CSS 文件放入用于提供静态内容的文件夹中(我有一段时间没有使用 CI 了。可能是 static/ ?检查您的 (apache) rewriterule...)。然后更改href,使其指向该目录中的文件。

      【讨论】:

        【解决方案4】:

        使用 firebug 并查看浏览器试图解析 CSS 的 URL 是什么。我打赌你会发现它得到了 404。

        尝试在包含的 CSS 文件之前附加 /Application,即

        <link rel="stylesheet" href="application/style.css"> 
        

        问题在于您的视图运行的上下文。

        希望有帮助

        【讨论】:

        • 那行不通。我什至把整个路径都放在它前面,但它不起作用
        • 哦!如果您使用 firebug,您可能会发现您从服务器收到 403 错误。确保您对该文件夹具有读取 CSS 文件的权限。图像也是如此。我自己也遇到过这个问题。
        【解决方案5】:

        在 codeigniter 中,css 等内容的路径是相对于您的 webroot index.php 文件的。

        我建议您将 css 放在 webroot 中的 assets/css 或 /css 文件夹中,然后您的视图链接将是

        <link rel="stylesheet" href="assets/css/style.css">
        

        例如。

        【讨论】:

          【解决方案6】:

          结合上面的一些答案,这就是我在我的 CodeIgniter 安装中加载 Blueprint.css 所做的:

          1. 在安装的根目录中创建一个名为“static”的文件夹(与“application”、“system”和“index.php”对应)。
          2. 创建一个名为“css”的子文件夹 (/static/css)
          3. 复制那里的蓝图文件夹(/static/css/blueprint/)
          4. 打开 .htaccess。改变这个...

            RewriteCond $1 !^(index\.php|images|robots\.txt)
            

            ...到这个:

            RewriteCond $1 !^(index\.php|images|static|robots\.txt)
            
          5. 在您的头文件(例如 /application/views/template/header.php)中,使您的链接相对于站点:

            <!-- Framework CSS -->
            <link rel="stylesheet" href="/static/css/blueprint/screen.css" type="text/css" media="screen, projection">
            <link rel="stylesheet" href="/static/css/blueprint/print.css" type="text/css" media="print">
            <!--[if lt IE 8]><link rel="stylesheet" href="/static/css/blueprint/ie.css" type="text/css" media="screen, projection"><![endif]-->
            

          请注意,此方法适用于任何静态内容(例如 Prototype.js、jQuery、常见图像等)。只需使您的 href 链接与站点相关,它应该可以工作。

          “静态”作为文件夹名称并没有什么特别之处。就是我随便取的名字。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2015-11-13
            • 2017-11-17
            • 1970-01-01
            • 2011-10-10
            • 2012-02-26
            • 2010-11-06
            • 1970-01-01
            相关资源
            最近更新 更多