我有以下Kohana设置:
我所有的文件都放在“public_html / koh”下
我的js文件放在“public_html / koh / media / js /”下
我使用html::script助手来包含那些生成以下html代码的JavaScript文件:
<script type="text/javascript" src="/koh/media/js/site.js"></script>
在我的js中,我访问诸如json / getsomething(即http://localhost/koh/json/getsomething)之类的 Controller 之一。
只要我停留在 Controller 顶部,它就可以正常工作:
http://localhost/koh/home
当我转到“http://localhost/koh/home/index”时,它当然会呈现相同的页面,但是“json / getsomething”不再可以从Javascript访问。
我怎么解决这个问题?
是否使用绝对路径包含Javascript?
在js中创建一个像var fullPath ='http://localhost/koh/'的变量?
最佳做法是什么?
列昂蒂
最佳答案
那就是我做到的。
我做了一个函数url_base
,它对应于kohana的url::base
,所以当我从本地主机转移到生产环境时,它会切换。
查看模板:
<script type="text/javascript">
function url_base() { return "<?php echo url::base();?>"; }
</script>
然后在config.php中:
if(IN_PRODUCTION) {
$config['site_domain'] = '/';
}
else {
//if in localhost redirect to localhost/mysite
//instead of just localhost
$config['site_domain'] = '/mysite/';
}