【问题标题】:CodeIgniter URI routing: remove route segment from base URLCodeIgniter URI 路由:从基本 URL 中删除路由段
【发布时间】:2017-12-22 12:36:37
【问题描述】:

如何从我的基本 URL 中删除路由段?例如,我的 routes.php 中有这些路线:

$route['default_controller'] = 'main_controller';
$route['users'] = 'user_controller';
$route['user/(:num)'] = 'main_controller/user/$1';

它们都被正常路由,但是在由 user() 方法所有生成的链接(对于 .js.css.png 文件等)在基本 URL localhost/domain_name 和文件路径(例如 css/style.css)之间插入了 user/,所以所有这些链接(如您所料)都返回 404 并且页面格式不正确。

如果您需要有关相关代码的更多信息,只需评论您需要的内容,我会添加它。提前致谢。

编辑:如果有任何帮助,视图中的echo base_url(); 会打印出http://localhost/domain_name/

【问题讨论】:

  • 在视图文件中,调用绝对路径(即/css/style.css)。
  • @Tpojka 但是现在它不会自动添加基本 URL 了吗?
  • 您必须在基本网址的末尾设置方案,并在末尾设置正斜杠(即$config['base_url'] = 'http://localhost/domain_name/)。
  • 你设置并试过了吗?您应该不会遇到正确设置 base_url 的问题。
  • 这是您的评论之一:$config['base_url'] = 'localhost/domain_name'; 这甚至与我在看到您的评论后提出的问题都不相近。我在分享我的经验。如果没有设置完全限定的 URL 路径,这意味着 scheme+host+path+trailing slash 我能够注意到类似的问题。您可以检查的另一件事是浏览器缓存:关闭所有浏览器窗口并重试,但在私人模式下。这样你就应该确定没有缓存页面。

标签: php codeigniter url-routing


【解决方案1】:

在脚本和 css 文件之前添加 base_url。并指定保存的文件夹。就像我们在 assets/css 文件夹中有 style.css 文件

<?php echo base_url('assets/css/style.css'); ?>
Or 
<?php echo base_url().'assets/css/style.css'; ?>

【讨论】:

  • 我试过了,它还在它前面添加了user/
  • 你能指定base_url是什么吗?
  • $config['base_url'] = 'localhost/domain_name';
  • 没错。你在哪里使用它。你能显示代码吗?
  • 好的,这似乎可行,但我必须更改基本 url,正如@Tpojka 所建议的那样。问题出在我正在测试它的链接中(它已损坏)。
猜你喜欢
  • 2019-04-09
  • 2017-04-05
  • 1970-01-01
  • 2013-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-20
  • 1970-01-01
相关资源
最近更新 更多