我有一个普通的,而不是REST应用程序。但我不知道这是否相关。我想使用require.js因为我有几个JS文件。我知道可以使用AssetBundles,但是,我的应用程序不是以HTML-GET requeset开头的,所以AFAIK我不能使用它们,因为不会创建资源。
背景信息:我的应用程序就像一个REST应用程序。它提供了一个JS文件,它将加载其他JS文件(带有require.js;这个JS文件包含AJAX请求以从应用程序获取JSON数据)。没有HTML操作。它只提供JSON数据。
其中一些文件是像jQuery这样的库。 jQuery已经provided by Yii2所以我认为浏览器可以通过require.js以某种方式获取此jquery.js
文件。但是,它存储在@web/assets/54509f77/
文件夹中545097ff
是动态的。与bootstrap.js
或CSS文件相同。那么,我怎么能在require.js中定义它呢?
有人能举例说明如何使用Yii2资产设置require.js场景吗?或者这没有意义,我应该提供我自己的jquery.js
?
如果这都是愚蠢的话,请随意投票。我对require.js没有经验......
答案 0 :(得分:3)
我从未使用require.js
,但在使用grunt时我不得不关闭资产。
根据我的经验,如果您没有利用Assets(Bundles和依赖项)的好处 - 您可以将其关闭并提供自己的库。
$config = [
// ...
'components' => [
// ...
'assetManager' => [
'bundles' => false,
],
],
];
棘手的一点是让所有Yii JS文件重新进入,即使您没有使用它,我也会将您推荐给samdarks chapter on Grunt。它可能会有所帮助。
必须包含以下JS文件才能使用Yii Widgets
“供应商/亭子/ jquery的/ DIST /的jquery.js”,
“供应商/亭子/引导/ DIST / JS / bootstrap.js”,
“供应商/ yiisoft / yii2 /资产/ yii.js”,
“供应商/ yiisoft / yii2 /资产/ yii.validation.js”,
“供应商/ yiisoft / yii2 /资产/ yii.activeForm.js”