【问题标题】:Codeigniter: File not foundCodeigniter:找不到文件
【发布时间】:2014-08-27 15:03:02
【问题描述】:

为什么我的 css、js 和 img 文件的路径在“应用程序”之前有 CONTROLLER 名称?

萤火虫的路径:

localhost/quote-generator/admin/application/assets/bootstrap/css/bootstrap.min.css

我的代码:

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

这是来自一个 header.php 文件,该文件包含在我的一个视图中,该视图是在“登录”功能的管理控制器中生成的。

有什么建议吗??

【问题讨论】:

  • 你的 config.php 文件中的 $config['base_url'] 是什么?
  • $config['base_url'] = 'application/';
  • 应设置为您的应用程序的域。例如,如果您的站点是 example.com,那么您可能需要设置 $config['base_url'] = 'example.com'。您还可以将您的资产目录移到应用程序目录之外,以便它们与您的 index.php 文件位于同一目录中,然后您可以简单地引用 '/assets/bootstrap/css/bootstrap.min.css' 而不是使用 base_url
  • 我试过了,但问题依旧,只有在访问admin控制器的登录功能时才会出现问题,所以/admin/login.当简单地输入localhost/quote-generator/admin/login 时也会发生这种情况,末尾带有 /,但末尾没有“/”,它只是转到管理控制器中的 index() 函数并正确加载资产。奇怪
  • 你在用.htaccess吗?

标签: php css codeigniter


【解决方案1】:

将资产文件(即应用程序文件夹中的 css/images)保留为不好的做法

你的 Codeigniter 文件夹结构应该是这样的

root
  |
  |_______________application
  |_______________assets
                   |_________css
                   |_________images

考虑到root是管理员

设置上面的结构,设置base_url这样

$config['base_url'] = 'localhost/quote-generator/admin/';

然后把href这样放

href="<?php echo base_url();?>assets/bootstrap/css/bootstrap.min.css"

【讨论】:

  • 'Admin' 是我的一位控制器的名称。出于某种原因,codeigniter 在项目目录和应用程序之间插入控制器名称,如下所示....:localhost/quote-generator/admin/application/assets/ 从而使路径损坏。这仅在访问管理控制器时发生,而不是在此控制器的索引功能时发生。超级奇怪。
【解决方案2】:

使用:

site_url()

而不是

base_url

这样更省钱

【讨论】:

    猜你喜欢
    • 2023-02-03
    • 1970-01-01
    • 2016-01-25
    • 2013-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-27
    相关资源
    最近更新 更多