热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

RequireJS-我应该为BaseUrl设置什么?

如何解决《RequireJS-我应该为BaseUrl设置什么?》经验,为你挑选了1个好方法。

在给定项目结构的情况下,我无法理解如何为requirejs设置基本URL.

问题:并非所有html文件都在同一文件夹级别.脚本文件路径不断变化,具体取决于html页面的位置.

我尝试了什么:我已经搜索了API,但我只是不明白BaseURL应该是什么,以获得所有页面的正确路径.我已经测试了变体(../js/lib,/ js/lib /,我试过在main.js文件中没有包含它)但下面这个是唯一一个似乎在某些文件上产生正确结果的文件.

Main.js

requirejs.config({
    baseUrl: '../js/lib',    
    paths: {
        'jquery' : (document.addEventListener) ? ['vendor/jquery'] : ['vendor/jquery-1.9.1']
    },
    shim: {
        'foundation/foundation': {
            deps: ['jquery']
        },
        'foundation/foundation.alert': {
            deps: ['jquery', 'foundation/foundation']
        },            
        'vendor/slick.min': {
            deps: [
                'jquery',
                'foundation',
                'foundation/foundation.interchange'
            ],
            exports: 'slick'
        }
    }
});
requirejs(['jquery'
    , 'foundation/foundation'   
]);

文件夹结构

Main Folder
?
?  Some Folder
?  ??? css
?  ??? js
?  ?   ??? lib
?  ?   ?   ??? foundation
?  ?   ?   ?   ??? foundation.alert.js
?  ?   ?   ?   ??? ...(foundation component js files)
?  ?   ?   ?   ??? foundation.js
?  ?   ?   ??? vendor
?  ?   ?   ?   ??? jquery-1.9.1.js
?  ?   ?   ?   ??? jquery.js
?  ?   ?   ??? foundation.min.js
?  ?   ?   ??? slick.min.js
?  ?   ?   ??? slickModule.js
?  ?   ??? main.js
?  ?   ??? require.js   
?  ??? html
?  ?   ??? components
?  ?   ?   ??? slider.html    [All scripts throw 404: Main Folder/Some Folder/html/js/lib/vendor/file.js ]
?  ?   ??? home.html           [loads files as expected]
?  ?   ??? second.html         [loads files as expected]
?  ?   ??? subfolder
?  ?   ?   ??? random.html
?  ??? extra folder
?  ?   ??? index.html   [All scripts throw 404: Main Folder/Some Folder/extra folder/js/lib/vendor/file.js ]
?  ?
?  Another Folder
?  ??? index.html [All scripts throw 404]

/html/components/slider.html

当我尝试以这种方式调用require时,slickModule的url是"Main Folder/Some Folder/html/js/lib/slickModule.js" - 注意'html'是在基本url之后添加的



 
    
    


...


有人可以帮我看看为什么会这样吗?

如果它甚至可能,我该怎么做才能使基本URL保持一致?



1> rockerest..:
摘要

    不要连续两次使用相同的文件,特别是如果它是更改配置选项的文件,特别是如果它使用相对路径.

    使用单个应用程序入口点.如果无法在一个地方启动应用程序,则使用该data-main属性将很困难(尽管不是不可能).

    paths当您包含模块或设置配置时,使用配置选项指向文件,而不是相对路径.

单一入口点

首先,您可能会遇到data-main属性的一些问题,因为当用于多个入口点时,它的行为没有记录.正如它所说:

如果要require()在HTML页面中进行调用,则最好不要使用data-main.data-main仅在页面只有一个主入口点data-main脚本时使用.对于要进行内联require()调用的页面,最好将这些内容嵌套在require()调用中以进行配置

多个要求

其次,您正在使用该data-main属性加载您的配置,该配置定义了库的行为(换句话说,require/ requirejsfunction是自定义的),但是您使用该自定义工具再次加载配置:


我几乎是肯定的,这引入了一些奇怪的行为.

使用paths以避免../

三,你baseUrl会自动设置为任意加载它的HTML的位置,该位置data-main脚本.您可以通过创建单个入口点(可能js/main)来使用此优势,然后定义路径配置选项以隐藏嵌套模块.

换句话说,您的应用程序永远不需要请求../(或其任何变体),因为任何嵌套都应该被路径条目隐藏,如:

"paths": {
    "slickModule": "lib/slickModule"
}

我知道这个答案没有具体解决你的问题,但我很肯定其中一个问题 - 纠正后 - 将解决你的404问题.


推荐阅读
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 扫描线三巨头 hdu1928hdu 1255  hdu 1542 [POJ 1151]
    学习链接:http:blog.csdn.netlwt36articledetails48908031学习扫描线主要学习的是一种扫描的思想,后期可以求解很 ... [详细]
  • 实体映射最强工具类:MapStruct真香 ... [详细]
  • 本次考试于2016年10月25日上午7:50至11:15举行,主要涉及数学专题,特别是斐波那契数列的性质及其在编程中的应用。本文将详细解析考试中的题目,并提供解题思路和代码实现。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • ImmutableX Poised to Pioneer Web3 Gaming Revolution
    ImmutableX is set to spearhead the evolution of Web3 gaming, with its innovative technologies and strategic partnerships driving significant advancements in the industry. ... [详细]
  • 本题涉及一棵由N个节点组成的树(共有N-1条边),初始时所有节点均为白色。题目要求处理两种操作:一是改变某个节点的颜色(从白变黑或从黑变白);二是查询从根节点到指定节点路径上的第一个黑色节点,若无则输出-1。 ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 本题通过将每个矩形视为一个节点,根据其相对位置构建拓扑图,并利用深度优先搜索(DFS)或状态压缩动态规划(DP)求解最小涂色次数。本文详细解析了该问题的建模思路与算法实现。 ... [详细]
  • 作者:守望者1028链接:https:www.nowcoder.comdiscuss55353来源:牛客网面试高频题:校招过程中参考过牛客诸位大佬的面经,但是具体哪一块是参考谁的我 ... [详细]
  • 深入理解Redis的数据结构与对象系统
    本文详细探讨了Redis中的数据结构和对象系统的实现,包括字符串、列表、集合、哈希表和有序集合等五种核心对象类型,以及它们所使用的底层数据结构。通过分析源码和相关文献,帮助读者更好地理解Redis的设计原理。 ... [详细]
  • IamtryingtowriteaRequireJSmodulethatdependsonjQueryandajQueryplugin.Iamhavingtrou ... [详细]
author-avatar
手机用户2502936713
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有