相对路径不适用于路径

Moo*_*oon 9 path relative-path requirejs

我在requirejs中遇到相对路径问题.

首先,我有以下结构.我正在使用虚拟主机(os.com)运行它,路径是os.com/test

在此输入图像描述

的index.html

<script data-main="config" src="require.js"></script>
Run Code Online (Sandbox Code Playgroud)

config.js

require.config({

  baseUrl: "./apps",
  deps: ['ui'],
  paths: {
    ui: 'ui/ui',
    system: 'system/system',
    core: 'core/core'
  }


});
Run Code Online (Sandbox Code Playgroud)

ui.js

define(['./class/menuBuilder',"./class/window"], function(menuBuilder, windowBuilder){


    return {
        menuBuilder: menuBuilder,
        windowBuilder: windowBuilder
    }

});
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我得到以下错误.

GET http://os.com/test/apps/class/menuBuilder.js 404 (Not Found)
GET http://os.com/test/apps/class/window.js 404 (Not Found)
Run Code Online (Sandbox Code Playgroud)

如果我从'paths'属性中取出'ui'属性然后将deps更改为['ui/ui'],它可以工作,但我想使用路径.

更改了config.js

require.config({

  baseUrl: "./apps",
  deps: ['ui/ui'],
  paths: {
    system: 'system/system',
    core: 'core/core'
  }


});
Run Code Online (Sandbox Code Playgroud)

如何更改配置以使路径和相对路径一起工作?

Ash*_*hot 12

我有类似的问题.我没有deps:'ui'参与我的配置,只是路径设置,但仍然相对模块引用('./class/menuBuilder')不能从加载路径的模块("ui:'ui)起作用/ ui'")并将使用baseUrl.为了解决这个问题,我将'ui'定义为一个包:

require.config({

  baseUrl: "./apps",
  deps: ['ui'],
  paths: {
    system: 'system/system',
    core: 'core/core'
  },
  packages : [
    { 
        name: 'ui',
        location : 'ui',
        main : 'ui'
    },
  ]

});
Run Code Online (Sandbox Code Playgroud)

在这种情况下,require将正确加载相对模块的模块.

这是一篇有用的文章:RequireJS模块/包的相对路径