所以我有一个简单的应用程序 AngularJs 和 Spring mvc。我有一个映射到 angularJs 页面的 Controller ,我在 jsp 页面中有这段代码:
<div ng-app="myApp" ng-controller="myCtrl">
<p>The name is <span ng-bind="person.lastName"></span></p>
{{ lastName }}
</div>
<script src="applications.js"></script>
<script src="controllers.js"></script>
应用程序.js :
var app = angular.module("myApp", []);
controllers.js :
app.controller("myCtrl", function($scope) {
$scope.firstName = "John";
$scope.lastName= "Doe";
});
当我使用 Pivotal 运行它时,它不会运行,但是当我直接在浏览器中访问该文件时,它就像一个魅力,有人愿意解释一下吗?
谢谢。 编辑
WebConfig.java :
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**")
.addResourceLocations("/resources/");
}
@Override
public void configureDefaultServletHandling ( DefaultServletHandlerConfigurer configurer )
{
configurer.enable();
}
}
资源文件夹:
网址: http://localhost:8080/gestionprojet/Project/angularjs
我的 Controller :
@RequestMapping("/angularjs")
public String getAngularJs() {
return "AngularJs";
}
最佳答案
首先,你的文件在/WEB-INF/resources下,但是你配置了spring从/resources加载静态资源。所以他们根本无法服务。配置应该是
registry.addResourceHandler("/resources/**")
.addResourceLocations("/WEB-INF/resources/");
您的网页的网址是
/gestionprojet/Project/angularjs
您的页面尝试使用相对路径加载脚本
applications.js
所以浏览器查找JS文件对应的绝对路径是
/gestionprojet/Project/applications.js
这与您选择从中提供静态资源的 URL 不匹配。假设/gestionprojet
是应用程序的上下文路径,绝对URL应该是
/gestionprojet/resources/applications.js
所以JSP中的源代码应该是这样
<script src="${pageContext.request.contextPath}/resources/applications.js"></script>
关于AngularJs View 与 Spring : Not showing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39064474/