我在尝试激活shell时遇到404错误。它似乎找到了shell.js,但后来表明它找不到shell.html因为它看错了地方!
我试图迫使会议明确告诉它在哪里看,但它仍然无法正常工作。像这样:viewLocator.useConvention('viewmodels', 'views', '');
但我仍然得到:
App/viewmodels/shell.html 404 (Not Found)
显然它不应该在app/viewmodels/
中查看,它应该在app/views/
中查看
我的项目的不同之处在于我没有使用'/ scripts /'文件夹作为第三方的东西,我正在使用我自己的名为'/ content /'的文件夹。我也把几乎所有与durandal有关的东西放在'/ app /'文件夹中。
这是我项目中一些关键文件的结构:
+app (folder)
main.js
> durandal (folder)
app.js
r.js
require.js
text.js
viewEngine.js
viewLocator.js
> plugins (folder)
router.js
> viewmodels (folder)
shell.js
> views (folder)
shell.html
在main.js中>
这里是我设置要调用的shell的地方:
app.setRoot('viewmodels/shell');
这里也是main.js中的路径:
paths: {
'text': 'durandal/text',
'durandal': 'durandal',
'plugins': 'durandal/plugins',
'transitions': 'durandal/transitions'
}
shell.js中的> 好吧,它并不重要,因为它已经在这一点上抛出404了。
任何想法?
答案 0 :(得分:1)
自:
define(['../app/durandal/system', '../app/durandal/app', '../app/durandal/viewLocator'], function (system, app, viewLocator) {
于:
define(['durandal/system', 'durandal/app', 'durandal/viewLocator'], function (system, app, viewLocator) {
现在似乎有用了。