Kohana和Javascript路径

Kohana和Javascript路径,javascript,kohana,Javascript,Kohana,我有以下Kohana设置: 我的所有文件都放在“public_html/koh”下 我的js文件放在“public_html/koh/media/js/”下 我使用html::script helper包含生成以下html代码的javascript文件: <script type="text/javascript" src="/koh/media/js/site.js"></script> 在我的js中,我访问一个控制器,比如“json/getsomething”(

我有以下Kohana设置:

我的所有文件都放在“public_html/koh”下 我的js文件放在“public_html/koh/media/js/”下

我使用html::script helper包含生成以下html代码的javascript文件:

<script type="text/javascript" src="/koh/media/js/site.js"></script>

在我的js中,我访问一个控制器,比如“json/getsomething”(即)

只要我保持在控制器顶部,它就可以正常工作:

当我转到“”时,它当然会呈现相同的页面,但是“json/getsomething”不再可以从Javascript访问

我怎样才能解决这个问题

使用绝对路径包含Javascript? 在js中创建一个变量,比如var fullPath=''

最好的做法是什么

莱昂蒂我就是这样做的

我制作了一个函数
url\u base
,它将对应于kohana的
url::base
,因此当我从本地主机转移到生产环境时,它将切换

视图模板:

<script type="text/javascript">
    function url_base() { return "<?php echo url::base();?>"; }
</script>
(虽然有点晚了,但希望仍然有用)下面是我用来更好地组织js服务器端变量的另一种方法

我把一些基本变量放在开头的某个地方,例如在“before()”函数中:

    $this->template->appconf = array(
        'url_base' => url::base(),
        'l' => substr(I18n::$lang, 0, 2),
    );
现在,我可以在需要任何额外变量时添加:

    $this->template->appconf['page_key'] = 'product_page';
最后,在这个干净的模板中:

<script type="text/javascript">
    var appconf = <?php echo json_encode($appconf); ?>;
</script>

var-appconf=;
这样使用:

<script type="text/javascript">
    console.log(appconf.url_base); // "/mysite/"
</script>

console.log(appconf.url_base);//“/mysite/”

非常有魅力!正是我需要的!
<script type="text/javascript">
    console.log(appconf.url_base); // "/mysite/"
</script>