繁体   English   中英

CodeIgniter 3:使用资产重写URL

[英]CodeIgniter 3 : Rewriting URL with assets

我在CodeIgniter 3中面临URL重写的问题。

我的文件结构是:

site
    -assets (.css and .js files)
    -application (sites files : controller, ...)
    -system (CI files)
    -user_guide

为了避免在URL中使用index.php /,我使用了以下配置:

.htaccess

RewriteEngine on
RewriteCond $1 !^(index.php|resources|robots.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

config.php

$config['index_page'] = '';

这样,我的网址不是test.com/index.php/user/function而是test.com/user/function 实际上, 一切工作都很好 ,但是当某些.js脚本尝试使用相对URL调用其他脚本时,它将调用错误的URL。 例如,如果我的脚本之一想要调用assets/js/jsfile.js ,那么我会遇到404错误,因为它调用了http://www.test.com/user/assets/js/jsfile.js ,而它应该是http://www.test.com/assets/js/jsfile.js

为了避免这种情况,我在每个自称的<link><script> <?php echo base_url() ?>中都放置了<?php echo base_url() ?> ,但是某些.js库需要进行内部调用,而我每次都不能这样做。喜欢真正的解决方案...有什么主意吗? 非常感谢 !

像这样更改您的htaccess文件;

RewriteCond $1 !^(index.php|resources|robots.txt|assets)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM