这是我的views
目录:
- views/
- home.php
- contact.php
- assets/
- css/
- main.css
config.php :(改变这似乎没有做任何事情)
$config['index_page'] = 'index.php';
routes.php文件:
$route['default_controller'] = "welcome";
当我请求www.example.com/index.php
时,默认页面(即home.php)加载并且所有资产都有效。但是,当我请求www.example.com/index.php/welcome
或www.example.com/index.php/welcome/index
时,页面会加载但资源不起作用。如果我尝试从主页的链接加载页面,也会发生同样的情况。
我不知道index.php的用途。我希望能够只请求www.example.com/welcome/index
来调用welcome.php
控制器并调用index
方法。 application/index.php
看起来非常重要,但是我还没有删除它,但我并不是真的想要它。我该怎么办?
感谢。
答案 0 :(得分:2)
我想你在这里问了3个不同的问题。
首先,index.php是codeigniter应用程序的主要入口点。这非常重要,因为您的所有路线都将通过索引。您可以在配置中更改它的原因是,如果您的设置需要,可以将其重命名为index.php以外的其他内容
其次,只是在这里猜测,但我认为您的资产是使用相对路径加载的;使用base_url()为您的所有资产添加前缀;例如
<?=base_url();?>assets/css/style.css
第三,你需要一个htaccess文件来隐藏index.php(给你www.example.com/welcome),或者如果你没有使用apache服务器则需要等效的文件,如下所示(取自http://www.codeigniter.com/user_guide/general/urls.html:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
答案 1 :(得分:0)
启用模式重写服务器LAMP / WAMP并使用以下代码添加.htaccess文件
RewriteEngine on
RewriteCond $1 !^(index.php|resources)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
完成上述过程后,您可以使用不带index.php的网址,例如www.example.com/welcome/index
以及您的资产目录www.example.com/assets
答案 2 :(得分:0)
在学习MVC框架如何工作之前,
<强> www.example.com/controller/function
强>
如果您致电www.example.com
,则会加载默认controller
。您可以在config.php
在函数内部,您可以调用view
(您的实际html可查看脚本)。按照https://ellislab.com/codeigniter/user-guide
默认情况下,codeignitor网址将与www.example.com/index.php/controller/function
可以使用.htaccess