require-css:包含一个css文件,其路径中包含“css”(例如:bootstrap / css / bootstrap.css)

时间:2014-08-07 16:24:02

标签: requirejs

我的require.js配置:

require.config({
    paths: {
        css: "../libs/require-css/css",
    },
    map: {
        "*": {
            less: "../libs/require-less/less",
            css: "../libs/require-css/css"
        }
    }
});

我正在尝试在dir名称

中包含一个“css”的css文件
require([
    "css!bootstrap/../css/bootstrap"
], function(
) {

获取解释为libs/require-css/css/bootstrap.css,因为css位于目录名称中。我如何要求在文字

的路径中处理css

2 个答案:

答案 0 :(得分:3)

您需要更改自己想要使用的路径。

而不是:

paths: {
   css: "../libs/require-css/css",
},

使用此

paths: {
   require-css: "../libs/require-css/css",
},

然后将其引用为

require([
    "require-css!bootstrap/../css/bootstrap"
], function(
) {

路径只是作为文件较长位置的快捷方式或别名,因此您可以使用任何您喜欢的值。

答案 1 :(得分:0)

路径中的任何短模块名称都不应存在于文件路径中。

例如,如果path : {css: 'path/to/require/css'},

require(['css!css/style.css'],  function () {});

' CSS' style.css的文件路径中的字符串将替换为模块css的路径。 所以等于

require(['css!path/to/require/css/style.css'],  function () {});

要防止出现此问题,您可以使用' require-css'替换css模块名称。像丹尼斯一样

path : {require-css: 'path/to/require/css'};
require(['require-css!css/style.css'],  function () {});

或替换css目录名称' css'用' style'

path : {css: 'path/to/require/css'};
require(['css!style/style.css'],  function () {});