我开发了一个简单的网站,可以从Twitter公共时间线获取推文,将其缓存60秒等等。我最近将主机从Hostgator移动到Mediatemple,我的网站以前在Hostgator上工作正常。
我的应用程序不使用数据库连接,也不使用任何形式的平面文件数据库。推文缓存在存储在根目录中的XML文件中,而不是大部分内容都很重要。
正在包含url帮助器,如下所示(这是来自autoload.php的帮助器行):$autoload['helper'] = array('url');
我还使用.htaccess指令从URL中删除了我的index.php文件,并再次使用了Hostgator(请参阅下面的.htaccess代码):
RewriteEngine On
RewriteRule ^(application) - [F,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
在我的home.php视图文件中,它位于应用程序内的views文件夹中,我使用的函数base_url()以前在我的视图文件中处理Hostgator并在我的标题中附加一个基本的href值: <base href="<?php echo base_url(); ?>" />
这是我的base_url值在config.php文件中的样子:
$config['base_url'] = "http://threetune.com/";
虽然看起来正在发生的事情是根本没有看到base_url。它似乎没有回显出base_url的值,因为它出于某种原因似乎是空的。
令人讨厌的是我在另一个名为'fetch.php'的视图文件中有一个链接,由于某种原因,它似乎正在剥离该值(XSS过滤已关闭):<a href="threetune/show"><img src="assets/images/cookie.jpg" /></a>
threetune /显示部分是不可见的,我只看到一个空的href值,如<a href=""><img src="assets/images/cookie.jpg" /></a>
任何人都可能看到我可能做错了什么,某种Mediatemple服务器限制或需要设置的PHP.ini标志?谢谢,我希望我的描述性足够。
答案 0 :(得分:3)
我也在网格上。在重新阅读您的问题并进行一些测试(对我有用)之后,我认为发生的事情是您忘记加载url
帮助器。
如果您希望通过base_url()
在应用程序中使用网站基本网址,则需要先加载url
帮助程序。通过config / autoload.php或在控制器中手动加载。
否则你可以使用config / constants.php来定义常量变量:
define('BASE_URL', 'http://site.com');
define('BASE_PATH', '/path/to/CI/folder');
答案 1 :(得分:0)
只需快速了解base_url - 动态设置此变量可能是一个好主意,因为它可以让您的网站支持多个域。
(i.e. $config['base_url'] = ‘http://’.$_SERVER['HTTP_HOST'])
http://thecodeabode.blogspot.com/2010/10/codeigniter-supporting-multiple-domains.html通过提供考虑协议和端口的脚本来扩展这一点。