gpt4 book ai didi

javascript - requirejs 模块不将路径键识别为键并查找键,就好像它是文件名一样

转载 作者:行者123 更新时间:2023-11-29 15:39:33 26 4
gpt4 key购买 nike

我是 requirejs 的新手,正在尝试让一个简单的结构正常工作(请参见下文)。我尝试了多种方式,但路径不走运。

我的目标是设置所有页面共享的 requirejs 配置。

我的方法是让每个页面的脚本标记中的 data-main 指向对应于该页面的模块( page.php 到 js/page.js )。并从相应的模块中调用 js/config.js 作为第一个依赖项。问题是路径键在模块中不起作用。

然后我读到应该为配置设置脚本标记中的 data-main。所以我尝试将 data-main 指向 js/config.js 而不是相应的页面代码。然后在页面中添加第二个脚本标签。让第一个脚本标签首先加载到配置中,然后第二个脚本标签加载到相应页面的模块中。但与路径相同的概率,在模块路径键​​中不起作用。

问题是,当我在模块(['jquery'])中使用路径键(比方说'jquery')时,浏览器会在 js 文件夹中查找'jquery'键,而不是在'libs/我在 js/config.js 中指定的 jquery' 路径。所以然后将 baseRrl 添加到“js/”,然后尝试“/js”,然后还尝试“/js/”,还尝试在路径对象中的值前面使用“/”。没有运气。

然后我尝试指向 jquery 的谷歌 CDN,但浏览器仍然找不到它。

然后我将 key 从“jquery”更改为“ooo”,浏览器仍然在 js 目录中查找 ooo.js 文件,而不是查找配置路径中指定的 CDN。

不确定我的文件结构是否错误,或者路径和/或 baseUrl 是否设置不正确。我尝试了很多不同的方法但没有成功。请帮忙。不确定我是否已经因为看这些太久而错过了显而易见的东西而失明。谢谢你的帮助。

file structure : ------------index.phpjs/- config.js- index.js- libs/-- jquery.js-- require.js------------

index.php :

<head>
<script data-main="js/config" src="js/libs/require.js"></script>
<script src="js/index.js"></script>
</head>
<body>
</body>

js/config.js :

require.config({
baseUrl: 'js/',
paths: {
'ooo': 'http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min',
//'ooo': 'libs/jquery',
'mod': 'modules/module1'
},
shim: {
'ooo': {
exports: '$'
}
}
});

js/index.js :

require( ['ooo'], function( $ ) {

$( document ).ready( function() {
alert( 'work!' );
});

});

开发工具中的网络选项卡:

GET http://localhost/requirejs/site2/js/ooo.js 404 (Not Found) 

最佳答案

您不能使用data-main 加载您的配置。 data-main 所做的是告诉 RequireJS 开始 加载它指向的模块,但无法保证此操作何时完成。你得到的错误是因为 js/index.js 中的 require 执行 before js/config 被加载,因此它不使用您的配置。解决此问题的一种非常简单的方法是使用模块代替您拥有的 require。所以 js/index.js 将包含:

define(['ooo'], function( $ ) {
$( document ).ready( function() {
alert( 'work!' );
});
});

并且您的 RequireJS 配置可以有以下选项:

deps: [ 'index' ]

(是的,那只是index,不是js/index,也不是js/index.js。)deps 选项告诉 RequireJS 立即开始加载一些模块。以这种方式完成后,js/index.js 中的代码将不会在您的配置加载之前执行。

关于javascript - requirejs 模块不将路径键识别为键并查找键,就好像它是文件名一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21665030/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com