【发布时间】:2017-06-23 00:20:11
【问题描述】:
对于一个项目,我在后端使用 Django,在前端使用 AngularJs。
基本上,我想要的是仅当 url 以 projectkeeper/ 开头时运行 Angular 应用程序。
换句话说,假设我的网站是 example.com。我希望 Angular 应用程序针对 URL example.com/projectkeeper/dashboard/、example.com/projectkeeper/projects/ 等运行,但不在 example.com/about/ 上运行。
希望我已经说清楚了。无论如何,为了做到这一点,我正在使用我的代码执行以下操作:
urls.py
urlpatterns = [
url(r'^projectkeeper/$', TemplateView.as_view(template_name='base.html')),
]
在模板 base.html 中,我显然指的是我的 Angular 应用程序。对于角度路由,我做了以下工作:
myapp.config(['$routeProvider', function($routeProvider) {
$routeProvider
.when('/dashboard/', {
title: 'Dashboard',
controller : 'DashboardController',
templateUrl : 'static/app_partials/projectkeeper/dashboard.html'
})
.otherwise({ redirectTo : '/' });
}]);
因此,理想情况下,我认为转到 example.com/projectkeeper/#/dashboard/ 会从我的 Angular 应用程序运行 DashboardController。但是,情况并非如此,我只得到一个空页面,这意味着路由不正确。
有什么解决办法吗?正如我之前所说,我希望 仅在 url 以 projectkeeper/ 开头时运行 Angular 应用程序。
【问题讨论】:
-
你的静态文件定义正确吗?
-
是的,静态文件可以正常工作。控制器已正确加载。 URL 模式是问题所在。
-
我认为您也应该检查浏览器的控制台是否有错误。最好追溯哪里出了问题
-
能否请您发布
base.html代码?这就是问题所在。我已经在多个项目中做到了这一点,而且我的工作方式完全符合您的需要。
标签: javascript python angularjs django