我正在尝试从我的Yii资产文件夹中调用外部JS文件,源代码显示正确的文件,但JS没有响应。
我把它包含在我的视图文件中......
<?php Yii::app()->clientScript->registerScriptFile( Yii::app()->request->baseurl . '/assets/test.js' ); ?>
当我在一个非Yii 文件夹中复制它时,我知道这是问题b / c,当我在Yii中获取在线JS文件时有效。
答案 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文件夹中。项目通过资产管理器发布到达此处。