我正在使用Code Igniter 3.我将所有资产文件保存在根文件夹中,就像我通常那样。但是,我需要将所有文件移到另一个文件夹中,让我解释一下:
之前
user.php位于:%root%\ application \ views \
admin-panel.php位于:%root%\ application \ views \
资产位于:%root%\ assets
立即
user.php文件位于文件夹中:%root%\ application \ views \ usr \
admin-panel.php位于:%root%\ application \ views \ adm
资产位于:%root%\ assets
我知道只需将assets/anything.extension
更改为../assets/anything.extension
或者通过复制粘贴两个目录中的assets文件夹(我不想这样做)
但是,我已经完成了设计并且这样做非常耗时,所以我想知道是否有任何其他方法可以让adm或usr中的文件通过使用{{{}来访问资产中的文件1}}或route.php
某事?
答案 0 :(得分:0)
您需要在base path
中添加assets path
和config file
。
我提供了一些configuration
。请按照以下步骤操作
转到 application\config\config.php
添加以下代码(配置base url
和assets path
)
$config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http");
$config['base_url'] .= "://".$_SERVER['HTTP_HOST'];
$config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);
define('ASSET_PATH',$config['base_url'].'assets/');
最后你可以在像这样的链接中使用
<a href="<?php echo base_url('index.php/yourController/yourFunction'); ?>">Any Link</a>
资产的(例如img
)
<img src="<?php echo base_url(); ?>assets/img/logo.png" alt="">
您可以获得js
,css
这样的文件
<link href="<?php echo ASSET_PATH; ?>css/bootstrap.min.css" rel="stylesheet">
<script src="<?php echo ASSET_PATH; ?>js/jquery.min.js"></script>
答案 1 :(得分:0)
因为您的资源文件夹与index.php在同一文件夹中,所以路径必须是&#34; relative&#34;到......你可以通过
之类的东西逃脱<img src="/assets/img/logo.png" alt="">
使用HTACCESS 现在我必须声明,对于htaccess来说,我只是危险。
尝试将资产重定向到/ assets似乎在我的服务器上搞砸了。我发现如果你将资产文件夹重命名为资产甚至移动它,这似乎有效。所以不确定这可能有什么副作用,但它似乎在我的测试网站上播放正常。
<强>的.htaccess 强>
RewriteEngine On
# Note - the system assets folder has been renamed to asset
# to make it different. It doesn't like them being the same
# with this implementation. Especially if we match on /assets or assets.
RewriteRule ^/?assets/?$ /asset/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
^ /?assets /?$ 中的 /?以防万一你有一个领先/然后强制将文件夹从资产重命名为资产。否则它会在循环中追逐它的尾巴......
有更好的方法可以做到这一点,聪明的人会知道,所以它是一个可能的解决方案,但我并没有声称它是最好的,甚至技术上都不正确。
如果您使用它,请测试它的填充物。
我的测试设置。
根文件夹中的.htaccess文件
控制器名为 User.php
class User extends CI_Controller {
public function __construct() {
parent::__construct();
}
public function index() {
$this->load->view('usr/user_view');
}
}
名为 user_view.php 的视图位于 application / views / usr 下并包含...
<h1>This is the User View</h1>
<img src="assets/images/alien-icon.jpg" width="300" height="300" alt="">
图片位于 / asset / images / 注意:资产且不是资产
所以对资产/东西的任何引用......都被重定向到资产/....