首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带参数的CakePHP控制器函数不显示javascript

带参数的CakePHP控制器函数不显示javascript
EN

Stack Overflow用户
提问于 2013-03-22 23:15:53
回答 1查看 290关注 0票数 0

当我使用带参数的控制器函数时,呈现的视图似乎忘记了每个包含的.js文件。

代码语言:javascript
复制
public function view($id = null) {
    if(!$id) {
        throw new NotFoundException(__('Invalid post'));
    }

    $post = $this->Post->findById($id);

    if(!$post) {
        throw new NotFoundException(__('Invalid post'));
    }
    $this->set('post', $post);
}

如果我去掉参数,并将变量'$id = 1‘放在函数上,则postID为1的视图在’post/ view‘中呈现得很好。

我以传统的方式将javascript文件包含到default.ctp中:

代码语言:javascript
复制
echo "script type='text/javascript' SRC='../js/jquery-1.9.1.min.js'></script>";);

(它包括'<‘,但这个文本编辑器不会输入它,我猜是出于安全原因)

我对cakePHP的js helpers一无所知。我不能以传统的方式使用javascript吗?

站点在所有其他视图(例如posts/add)中都可以正常呈现,.js文件包含在“posts/ view /1”的源代码中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-22 23:44:10

问题所在

你使用的是javascript的相对路径;

代码语言:javascript
复制
<script src='../js/jquery-1.9.1.min.js'></script>

在这个url中,../意味着‘当前位置上的1个目录’,所以当你当前访问这个URL时;

代码语言:javascript
复制
http://mysite.com/home/

然后,您的浏览器将正确地尝试从加载脚本;

代码语言:javascript
复制
http://mysite.com/js/jquery-1.9.1.min.js

但是,如果您正在访问此url,则返回

代码语言:javascript
复制
http://mysite.com/home/and/some/more/

然后浏览器将在此处查找JavaScript:

代码语言:javascript
复制
http://mysite.com/home/and/some/js/jquery-1.9.1.min.js

如何解决这个问题

echo $this->Html->script('jquery-1.9.1.min');使用

  1. 的绝对路径(CSS、JavaScript、图片);使用CakePHP助手(毕竟,这就是它们的用途:为了简化您的工作:)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15573819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档