我刚用Kohana PHP完成了在线门户网站的编码。
它可以在我的电脑上正常工作,但当我试图在另一台服务器上托管它时,“BONK!”, 它显示没有显示产品的图片。
我甚至不知道发生了什么。
我应该遵循哪些规则来使我的Kohana应用程序可移植?
答案 0 :(得分:3)
我正在使用Kohana开发一些网站,这里有一些技巧用于确保网站是可移植的,因为我可以将文件从我的开发环境上传到服务器并让它们无需运行必须修改任何东西:
使用相同的目录结构。例如,在我的情况下,我将Kohana核心文件夹放在我本地磁盘上的<drive><somepath>/apps/kohana/system/
和<drive><somepath>/apps/kohana/modules/
以及服务器上的/apps/kohana/system/
和/apps/kohana/modules/
。同样,我将本地XAMPP htdoc设置为<drive><somepath>/public_html/
以遵循/public_html
的服务器设置。这样,当我将其上传到服务器时,我不必修改index.php
。 使用相对路径。
与kfederov建议一样,在模板中的所有src =“..”中使用url::base()
。我这样做的方法是在我的Controller_Template中指定$this->template->baseurl = url::base();
(我使用Kohana 3但Kohana 2.x的方法几乎相同)并在Smarty模板中使用{$baseurl}
(我高度评价建议使用Smarty模板系统 - 您可以在Kohana论坛中找到该模块。
在开发和服务器环境中使用相同的数据库名称,用户名和密码,这样我就不必修改config/database.php
了。
如果您在同一主机上托管多个具有不同域的网站,显然您不能将/public_html
用作除一个网站之外的所有网站的文档根目录。您最有可能必须将这些非主域配置为指向不同的文件夹,例如在我的情况下,我将它们放在/hosted/*/
文件夹中并相应地配置我的服务器cPanel。要在本地环境中复制此设置,您需要使用localhost子域,这需要您相应地修改httpd.conf
和您的HOSTS文件,如下所示:
在httpd.conf
中添加虚拟主机。 e.g:
<VirtualHost *:80> DocumentRoot /path/to/hosted/coolwebsite ServerName coolwebsite.localhost </VirtualHost>
添加到您的HOSTS文件(如果在Windows下,则为C:\WINDOWS\system32\drivers\etc\hosts
):
127.0.0.1 coolwebsite.localhost
现在您使用http://coolwebsite.localhost/
访问本地运行的Web服务器上的网站,以用于您的开发环境。
希望这有帮助!
答案 1 :(得分:0)
请务必更新index.php中的.htaccess值,或者更新配置文件中的.htaccess值。
答案 2 :(得分:0)
检查您的.htaccess
和bootstrap.php
文件,了解正确的网站路径。
确保您在URL::base()
中使用了src="..."
。