【问题标题】:codeigniter css and js files pathcodeigniter css 和 js 文件路径
【发布时间】:2017-06-26 12:16:01
【问题描述】:

我正在使用 php codeigniter 开发一个 Web 应用程序。在views文件夹中,我创建了header.php,其中包含css和js等文件和footer.php作为页脚。 在默认控制器中,当我使用$this->load->view('header') 时,没关系。但是当我在其他页面中使用此命令时,无法加载 css 文件。在检查元素中,我在 css 文件路径中出现错误,codeigniter 将 index.php/ctrl_name 添加到此地址。

这是我的 css 文件的路径:

http://localhost:9000/CRM/index.php/home/assets/css/materialize.min.css

【问题讨论】:

  • 请发布更多代码。
  • 您是否将您的基本网址设置为$config['base_url'] = 'http://localhost:9000/CRM/'; 您需要。
  • 资产必须在应用程序文件夹之外。

标签: php codeigniter


【解决方案1】:
  1. 在 application/config/autoload.php 中加载 url 帮助程序 $autoload['helper'] = array('url');

  2. 在 application/config/config.php 中设置 base_url 配置 $config['base_url'] = 'http://localhost/MyProject';

  3. 在 header.php 中,像这样包含 js 和 css: <link href="<?=base_url();?>assets/css/materialize.min.css" rel="stylesheet"> 祝你好运!

【讨论】:

  • TNX 兄弟!我正是这样做的。但不适用于其他控制器。
  • 你能告诉我你的目录顺序吗? assets 文件夹放在哪里?
  • 我把这个文件夹放在项目的根目录下。
【解决方案2】:

我建议您将所有静态文件放在 Web 根目录内的“资产”文件夹中。假设您创建了一个名为“assets”的文件夹,其中包含特定类型的文件夹,即 js、img、css。

然后总是像下面的例子那样引用它们:

  • /assets/js/main.js
  • /assets/css/style.css
  • /assets/img/picture.jpg

【讨论】:

  • 我这样做。对于默认控制器,它可以正常工作,但对于其他控制器,它会将 index.php 添加到这些资产的路径中。
  • 那么文件肯定不在正确的位置。如果文件在 webroot 中,那么 / 将使浏览器默认指向那里。
【解决方案3】:

这是因为您对资产使用了相对 URL,可能类似于 'assets/css/materialize.min.css'

一种可能的解决方案是改用绝对 URL: base_url('assets/css/materialize.min.css')

另一种解决方案是使用常量来存储资产文件夹的路径,然后在每次包含某些资产时使用该常量:

define('ASSETS_URL', base_url('assets/'));

// or you can even define separate constants for CSS
define('ASSETS_CSS_URL', base_url('assets/css/'));

// then use it like this
// note the extra slash, base_url() strips trailing slashes
$path_to_css_file = ASSETS_CSS_URL . '/materialize.min.css';

【讨论】:

  • 检查生成的 URL。它应该会给你一些错误提示。
【解决方案4】:

试试这个网址

<link rel="stylesheet" type="text/css" href="<?php echo base_url();?>assets/css/materialize.min.css">

如果您的基本 url 根目录和您的资产文件夹与根目录相同

【讨论】:

  • 我就是这么做的。但在其他控制器中不起作用。
  • 您的资产文件夹在哪里,并检查浏览器查看页面源中的 url 链接
【解决方案5】:

请在 application->config 中的 autoload.php 中自动加载 url helper,然后通过 base_url() 链接所有文件。将所有 js 和 css 文件放在 assests 文件夹中,然后检查链接代码:

<link href="<?php echo base_url(); ?>/home/assets/css/materialize.min.css" rel="stylesheet" type="text/css" >

【讨论】:

    【解决方案6】:
    <link href="<?php echo base_url();?>assets/css/materialize.min.css" rel="stylesheet">
    

    在你的视图文件中使用它(header.php)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-08
      • 1970-01-01
      • 1970-01-01
      • 2016-10-26
      • 2019-02-17
      • 1970-01-01
      • 1970-01-01
      • 2011-02-26
      相关资源
      最近更新 更多