首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Tomcat8.5上部署AngularJS

如何在Tomcat8.5上部署AngularJS
EN

Stack Overflow用户
提问于 2019-09-07 00:00:40
回答 1查看 344关注 0票数 1

如何在tomcat8.5上部署我的Angularjs代码

我已尝试将项目文件夹复制到tomcat中的webapps文件夹

我的项目结构

代码语言:javascript
复制
webapps
   myprojectname
      controllers
      css
      views
      route.js
      index.html
      config.js

route.js文件

代码语言:javascript
复制
angular.module("testroutes",["ngRoute"]).config(['$routeProvider',  function($routeProvider) {
$routeProvider.
when('/', {templateUrl: 'views/home.html'}).
when('/home', {templateUrl: 'views/home.html',controller: 'homecontroller'}). otherwise({redirectTo: '/'});
}]);

tomcat已经开始运行我所有的控制器,html正在加载,但是路由不工作。

localhost:8080/myprojectname/home -->给了我404

只有localhost:8080/myprojectname/ -->才能工作。哪个正在加载index.html

我的路由不工作。有人能帮帮忙吗?

EN

回答 1

Stack Overflow用户

发布于 2019-09-07 03:30:21

我假设你的意思是直接点击路由不起作用,而不是点击应用程序中的内部链接并完全刷新页面,这是另一个问题,这意味着你没有正确设置链接。如果你的意思是直接命中路由,那么解决这个问题的最简单和最不复杂的方法是在所有路由之前加上一个共同的根,比如/ng/*或/ajs/*,例如/ng/home。然后你有两个选项,它们都非常相似……

  1. 使用反向代理,如apache web服务器来处理内容,并将/ng/*重写为index.html。如果您正在构建一个非常重要的应用程序,这还会为您带来许多其他好处。
  2. 创建一个servlet或控制器或您在应用程序中使用的任何东西来处理/ng/*路径,并返回index.html。您还可以使用tomcat的重写阀执行类似于apache的重写操作,这可能具有类似的目的...https://tomcat.apache.org/tomcat-8.0-doc/rewrite.html.

问题是,您的请求正在查找一个文件,在根应用程序的情况下,它会找到一个默认文件index.html。当您请求/home时,没有/home文件或带有index.html的/home/文件夹,因此您自然会得到404。您必须有一种方法来告诉服务器某些类型的请求(例如,以/ng/开头)应该始终返回index.html。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57825309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档