相对路径不适用于路径
Posted
技术标签:
【中文标题】相对路径不适用于路径【英文标题】:relative path doesn't work with paths 【发布时间】:2012-08-29 13:34:43 【问题描述】:我在 requirejs 中的相对路径有问题。
首先,我有以下结构。我正在使用虚拟主机(os.com)运行它,路径是 os.com/test
index.html
<script data-main="config" src="require.js"></script>
config.js
require.config(
baseUrl: "./apps",
deps: ['ui'],
paths:
ui: 'ui/ui',
system: 'system/system',
core: 'core/core'
);
ui.js
define(['./class/menuBuilder',"./class/window"], function(menuBuilder, windowBuilder)
return
menuBuilder: menuBuilder,
windowBuilder: windowBuilder
);
当我运行它时,我得到以下错误。
GET http://os.com/test/apps/class/menuBuilder.js 404 (Not Found)
GET http://os.com/test/apps/class/window.js 404 (Not Found)
如果我从 'paths' 属性中取出 'ui' 属性,然后将 deps 更改为 ['ui/ui'],它可以工作,但我想使用路径。
更改了 config.js
require.config(
baseUrl: "./apps",
deps: ['ui/ui'],
paths:
system: 'system/system',
core: 'core/core'
);
如何更改我的配置以使路径和相对路径一起工作?
【问题讨论】:
【参考方案1】:我有类似的问题。我的配置中没有 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'
,
]
);
在这种情况下 require 会正确加载相对路径的模块。
这是一个有用的帖子:Relative paths with RequireJS modules/packages
【讨论】:
【参考方案2】:这里的解决方案是使用地图配置,而不是路径配置。路径配置只能用于文件夹,而不是模块本身。地图配置适用于各个模块。
那就试试吧:
require.config(
map:
'*':
'ui': 'ui/ui'
);
【讨论】:
以上是关于相对路径不适用于路径的主要内容,如果未能解决你的问题,请参考以下文章