我有以下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/';
}

08-28 20:26