Yii中的外部JS文件

时间:2011-08-24 01:03:17

标签: javascript yii

我正在尝试从我的Yii资产文件夹中调用外部JS文件,源代码显示正确的文件,但JS没有响应。

我把它包含在我的视图文件中......

<?php Yii::app()->clientScript->registerScriptFile( Yii::app()->request->baseurl . '/assets/test.js' ); ?>

当我在一个非Yii 文件夹中复制它时,我知道这是问题b / c,当我在Yii中获取在线JS文件有效。

2 个答案:

答案 0 :(得分:1)

资产文件夹应仅用于asset manager发布文件。例如,如果JS文件是窗口小部件的一部分,则可以将其放在protected / components / widgets / assets / yourJsFile.js中,并使用资产管理器将其自动发布到/ assets文件夹中。在此处阅读更多内容:Understanding Assets。如果不使用资产管理器,您可能希望将文件放在/js/test.js中并直接使用它。

如果文件正在加载,我仍然不知道这是否是问题。如果这没有帮助,请显示更多代码 - 在视图中加载js文件的位置和方式,文件中的内容等等。

答案 1 :(得分:1)

CClientScript::registerScriptFile()可以放置&lt; script&gt;标记页面各个部分的HTML(确切地说是三个地方:在&lt; head&gt;中或在&lt; body&gt;的开头或结尾)。有时候位置很重要,因为脚本标签的顺序很重要。当我使用jQuery UI时,我发现排序很重要。

默认情况下,它会将脚本标记放在&lt; head&gt;中。如果你玩这个位置,你会发现它有效。

您显示的一小段代码并不表示存在任何问题。但是你可能想要提供一个更大的例子和/或展示你所做的工作。顺便说一句,在Yii中你不应该把东西直接放到assets文件夹中。项目通过资产管理器发布到达此处。