当前位置: 首页 > 知识库问答 >
问题:

部署在TomCat上时,我的Angular Spring应用程序路由无法工作

时同
2023-03-14

我对角和Spring非常陌生。我可能犯了一些愚蠢的错误。我有Angular Spring应用程序,它会显示登录屏幕,然后显示菜单。这在未部署时(即Angular时)可以完美运行

  1. ng build—base href=/

我的pom。xml

<groupId>com.techence</groupId>
        <artifactId>new</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>war</packaging>

        <name>LoginDemoBackend</name>
        <description>Demo project for Spring Boot</description>

        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.4.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>

        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <java.version>1.8</java.version>
        </properties>

        <dependencies>

        <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>

            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <scope>runtime</scope>
            </dependency>


            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-jdbc</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-configuration-processor</artifactId>
                <optional>true</optional>
            </dependency>

                <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
                <version>1.5.7.RELEASE</version>
                <scope>provided</scope>
                </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>

            <dependency>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.1.0</version>
                <type>maven-plugin</type>
            </dependency>
        </dependencies>

        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>


        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>javax.servlet</groupId>
                    <artifactId>servlet-api</artifactId>
                    <version>2.4</version>
                </dependency>
            </dependencies>
        </dependencyManagement>
    </project>

我的应用程序。单元输电系统

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { LoginFormComponent } from './login-form/login-form.component';
import { HttpModule } from '@angular/http';
import { FormsModule} from '@angular/forms';
import { LoginServiceService } from './login-service.service';
import { HttpClientModule } from '@angular/common/http';
import { MenubarComponent } from './menubar/menubar.component';
import { BranchCreationComponent } from './menubar/branch-creation/branch-
creation.component';
import { RouterModule,Routes } from '@angular/router';
import { LedgerCreationComponent } from './menubar/ledger-creation/ledger-creation.component';

import { LocationStrategy } from '@angular/common';

import { HashLocationStrategy } from '@angular/common';

import { ForgotPasswordComponent } from './forgot-password/forgot-
password.component';

const routes: Routes = [    
    { path: '', component : LoginFormComponent}, 

    { path: 'menubar', component: MenubarComponent }, 

    { path: 'branchCreation', component: BranchCreationComponent },

    { path: 'ledgerCreation', component: LedgerCreationComponent } 
];

@NgModule({
declarations: [

    AppComponent,

    LoginFormComponent,

    MenubarComponent,

    BranchCreationComponent,

    LedgerCreationComponent,

    ForgotPasswordComponent

  ],
  imports: [ 
    BrowserModule,

FormsModule,

HttpModule,

HttpClientModule,

RouterModule.forRoot(routes),

  ],


  providers: [
              LoginServiceService,
             { provide: LocationStrategy, useClass: HashLocationStrategy },
            ],
  bootstrap: [AppComponent]
})
export class AppModule { }

共有1个答案

岳英耀
2023-03-14

尝试将此添加到Spring Boot代码中:

@Bean
public ErrorViewResolver customErrorViewResolver() {
    final ModelAndView redirectToIndexHtml = new ModelAndView("forward:/index.html", Collections.emptyMap(), HttpStatus.OK);
    return (request, status, model) -> status == HttpStatus.NOT_FOUND ? redirectToIndexHtml : null;
}

它对我有用,甚至Angular路由也有效。我在这里找到了它。

 类似资料:
  • 我无法在Tomcat 6上部署Grails 2.2.4应用程序。我尝试了新安装的tomcat,甚至我的应用程序的旧版本(以前运行过)。 此异常在一分钟后引发。在tomcat启动后: 我真的不知道从哪里开始修理它-/

  • 我试图将spring boot应用程序部署到外部tomcat,在catalina.log文件中出现如下异常。 war文件名为:com#myapp.war。

  • 我试图通过更新apache-tomcat-8.0.39\conf\catalina.properties在带有选项strict_servlet_compliance=true的Tomcat 8.0.39上部署一个应用程序,但一旦我这样做,我的应用程序部署就失败了。也就是说,我开始出现错误:SEVERE[localhost-startStop-1]org.apache.tomcat.util.dig

  • 我制作了一个程序,可以在设定时间后关闭PC。用户使用2个旋转框(一个用于小时,另一个用于分钟)输入时间,然后我将其转换为毫秒: 然后它调用timer()函数 然后signal timeout()调用shutdown()插槽/函数,检查用户是否要关闭、重新启动或注销电脑,然后执行相应的命令。 (还尝试了“shutdown-s-f”,甚至只尝试了“shutdown-s”,似乎没有什么能帮助解决问题)

  • 我正在开发一个简单的应用程序,它使用泽西作为框架来构建API,并使用Jackson来处理JSON。 当我部署应用程序时,通过复制 我很确定这个问题不在java代码中,因为它曾经与*一起工作。jar包含方法。但我厌倦了这一点,希望将其迁移到maven体系结构。 我不会发布我的全部代码,但你可以在这里看到。 为了简化操作,下面列出了我使用的依赖项: jersey json v1.19 什么会导致此错误

  • 每次我尝试在netbeans上部署web应用程序时,都会出现以下错误:\ C: \Users{myname}\Documents\NetBeansProjects\WebApplication2\nbproject\build impl。xml:1045:模块尚未部署。有关详细信息,请参阅服务器日志。 问题是,apache日志中没有错误! 我已经卸载了我的netbean并重新安装它,但问题仍然存在