【问题标题】:base url for code igniter site not working代码点火器站点的基本 URL 不起作用
【发布时间】:2018-09-14 10:02:41
【问题描述】:

CodeIgniter 新手,我的脚都湿了。

较旧的(5 岁?)CI 网站。将其移至 A2 的新虚拟主机并进行设置。

主页出现,但基本 URL 似乎不适用于该站点。我还没有更改 DNS,所以使用 FTP 上的 IP 和子文件夹。

应用程序/config/config.php

$config['base_url'] = 'http://xxx.xxx.xx.xxx/blah.com/';

也试过

$config['base_url'] = 'http://'.$_SERVER['SERVER_NAME'].'/blah.com/';

但是当网站加载时,css 在尝试加载时会丢失

<link href="/assets/css/global.css" rel="stylesheet" type="text/css" media="all" />
<link href="/assets/css/public.css" rel="stylesheet" type="text/css" media="all" />

等等

即使浏览器中的网址显示

http://xxx.xxx.xx.xxx/blah.com/

资产和东西正在尝试加载

http://xxx.xxx.xx.xxx/

这是我的 htaccess 文件。

# Deny access to the htaccess file
<FILES .htaccess>
order allow,deny 
deny from all
</FILES>

# Prevent these script from executing anything
Options -ExecCGI
AddHandler cgi-script .pl .py .jsp .shtml .sh .asp .cgi

# Make it so sessions are available on all sub-domains
#php_value session.cookie_domain .prelicensetraining.com

# Prevent directory browsing
Options -Indexes

# Code Igniter Clean URL Rewrites
RewriteEngine on  
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteRule ^(.*)$ index.php?/$1 [L]  

额外说明:最初在 A2 的新虚拟主机上遇到 500 内部服务器错误。打开票证并从支持人员那里收到以下信息。现在它正在连接到 db,但正如我上面提到的,基本 URL 设置无法正常工作。

“这是由于软件使用了旧的 mysql 扩展,PHP 7+ 不再支持该扩展。我们安装了 cPanel 的 MultiPHP 系统并将 blah.com 设置为使用 PHP 5.6,然后更新了应用程序/配置/数据库。 php 文件以使用 'localhost' 作为数据库主机,我们现在在http://xxx.xxx.xx.xx/blah.com/ 获得一个登录页面。"

【问题讨论】:

  • 你贴的HTML代码,base_url应该怎么用?
  • 不是。我只是想显示在错误的基本 URL 处加载资产的参考。谢谢。出于某种原因,config.php 中的基本 URL 设置忽略了 /blah.com/ 部分 URL。不知道为什么会这样。
  • 我想你不明白 base_url 在 CodeIgniter 中是如何使用的
  • 也许不是。我试图理解。网站在旧的虚拟主机上运行良好。移动到新的,我更新了 application/config/config.php 中的设置,因为它之前显示了旧的 URL,现在它没有加载资产。谢谢。
  • 感谢您的帮助。事实证明这是过时的 Code Igniter 框架的问题。经过一个长周末后,对代码进行了大修以使其保持最新状态,它现在可以与 baseURL 设置一起使用。谢谢!

标签: php .htaccess codeigniter base-url


【解决方案1】:

您没有在 HTML 代码中使用 base_url,您目前正在“手动”加载资产:

<link href="/assets/css/global.css" rel="stylesheet" type="text/css" media="all" />

开头的/ 告诉浏览器从根文件夹加载资产。

你可以使用base_url()函数来生成链接,如果你加载了URL助手,这个函数是可用的,你可以这样使用它:

base_url('assets/css/global.css');

这将返回:

http://xxx.xxx.xx.xxx/blah.com/assets/css/global.css

所以像这样使用它:

<link href="<?=base_url('assets/css/global.css');?>" rel="stylesheet" type="text/css" media="all" />

&lt;?=&lt;?php echo 相同

您可以使用以下代码加载 URL 帮助程序:

$this->load->helper('url');

【讨论】:

    【解决方案2】:

    请试试这个

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

    也可以在 inspect element 中检查它,或者右键单击您的网站并单击 View page Source 以查看文件的正确路径并进行相应更改。 p>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-04
      • 2021-10-16
      • 2013-06-05
      • 2020-05-22
      相关资源
      最近更新 更多