【问题标题】:How to use Yii2 with require.js?如何将 Yii2 与 require.js 一起使用?
【发布时间】:2016-07-07 06:43:43
【问题描述】:

我有一个普通的,而不是 REST 应用程序。但我不知道这是否相关。我想使用require.js,因为我有几个 JS 文件。我知道可以使用AssetBundles,但是,我的应用程序不是以 HTML-GET 请求集启动的,所以我无法使用它们,因为不会创建资产。

背景信息:我的应用程序的行为类似于 REST 应用程序。它提供了一个 JS 文件来加载其他 JS 文件(使用 require.js;这个 JS 文件包含从应用程序获取 JSON 数据的 AJAX 请求)。没有 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 的经验...

【问题讨论】:

    标签: javascript jquery requirejs yii2 assets


    【解决方案1】:

    我从未使用过require.js,但我在使用 grunt 时不得不关闭 Assets。

    根据我的经验,如果您没有利用资产(捆绑包和依赖项)的好处 - 您不妨将其关闭并提供您自己的库。

    $config = [
        // ...
        'components' => [
            // ...
            'assetManager' => [
                'bundles' => false,
            ],
        ],
    ];
    

    棘手的一点是把所有的 Yii JS 文件都找回来,即使你不使用它,我也会把你推荐给samdarks chapter on Grunt。这可能会有所帮助。

    必须包含以下 JS 文件才能使用 Yii Widgets

    "vendor/bower/jquery/dist/jquery.js",

    “供应商/bower/bootstrap/dist/js/bootstrap.js”,

    “供应商/yiisoft/yii2/assets/yii.js”,

    “供应商/yiisoft/yii2/assets/yii.validation.js”,

    “供应商/yiisoft/yii2/assets/yii.activeForm.js”

    【讨论】:

    • 感谢您的意见。我也可能会这样做。我去看看 Grunt。
    猜你喜欢
    • 2013-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-17
    • 1970-01-01
    相关资源
    最近更新 更多