无法从Django项目中的Angular路径加载模板

时间:2018-01-04 22:46:16

标签: javascript python angularjs django

在我的 urls.py 中,我有以下模式:

url(r'^$', views.index, name='index'),
url(r'^setup/$', views.index, name='index'),

两种模式最终解析为相同的视图,因为逻辑在控制器中处理。视图看起来像这样:

def index(request):
    return request(request, 'index.html', {})

在我的 index.html 文件中,我加载了Angular,我的Angular App,路由以及其他所有内容。

我的角度路线看起来像这样:

.when('/', {
    controller : 'BaseController',
    templateUrl : 'static/app_partials/base.html',
    reloadOnSearch: false
})
.when('/products/', {
    controller : 'ProductsController',
    templateUrl : 'static/app_partials/products.html',
    reloadOnSearch: false
})

现在,当我转到我的模式中的第一个URL时,一切都运行良好,并且路径能够完美地加载模板,因为网址是http://example.com/static/app_partials/base.html,这正是文件所在的位置。

但是,第二个URL不起作用,因为现在调用的模板是http://example.com/setup/static/app_partials/base.html,它不存在。

如何解决此问题?我试图将整个URL放在我的路由中,包含域和内容,但后来我得到了一个不安全的URL错误。有帮助吗?感谢。

1 个答案:

答案 0 :(得分:1)

使用绝对网址(带有前导斜杠)而不是相对网址。

例如,使用/static/app_partials/base.html代替static/app_partials/base.html