1

Ich versuche, auf die statische HTML-Seite zugreifen, die die Informationen des Build-Prozesses enthält, und es wird mit Maven War-Plugin generiert. Wenn ich jedoch versuche, auf die build.html zuzugreifen, die in meinem Projektstamm generiert wurde, wird nichts angezeigt oder ist nicht zugreifbar. Als ich jedoch versuchte, auf eine HTML-Datei unter meiner src/main/webapp/static zuzugreifen, kann ich dann auf die URL zugreifen: http://localhost:8180/MyProject/static/about/build.html.Zugriff auf statische build.html von meinem Projektstamm

Aber kann nicht auf diese Weise zugreifen, die ich wahrscheinlich suche: http://localhost:8180/MyProject/build.html.

Struktur in meinem MyProject.war

MyProject.war 

META-IN 

static 

WEB-INF 

build.html 

Maven Plugin War

<plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-war-plugin</artifactId> 
        <configuration> 
         <webResources> 
          <resource> 
           <directory>src/main/webapp/static/about</directory> 
           <filtering>true</filtering> 
          </resource> 
         </webResources> 
         <failOnMissingWebXml>false</failOnMissingWebXml> 
         <archive> 
          <manifest> 
           <addClasspath>true</addClasspath> 
          </manifest> 
         </archive> 
        </configuration> 
       </plugin> 

WebConfiguration Klasse (web.xml)

public class AppWebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { 

    @Override 
    protected Class<?>[] getRootConfigClasses() { 
     return new Class[] { AppWebConfiguration.class }; 
    } 

    @Override 
    protected Class<?>[] getServletConfigClasses() { 
     return null; 
    } 

    @Override 
    protected String[] getServletMappings() { 
     return new String[] { "/" }; 
    } 

} 

AppWebConfiguration (Federkonfiguration)

@Configuration 
@EnableWebMvc 
@ComponentScan(basePackages = "com.mypackages") 
public class AppWebConfiguration extends WebMvcConfigurerAdapter { 


    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     registry.addResourceHandler("/static/**").addResourceLocations("/static/"); 

    } 


    @Bean 
    public ViewResolver viewResolver() { 
     InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); 
     viewResolver.setViewClass(JstlView.class); 
     viewResolver.setPrefix("/WEB-INF/views/"); 
     viewResolver.setSuffix(".jsp"); 

     return viewResolver; 
    } 

} 

Spring Security Configuration

@Override 
     protected void configure(HttpSecurity http) throws Exception { 
      http 
      .authorizeRequests() 
      .antMatchers("/login").anonymous() 
      .antMatchers("/", "/home").hasRole(ADMIN) 
      .antMatchers("/admin/**").hasRole(ADMIN) 

      .and().formLogin().loginPage("/login") 
      .usernameParameter("ssoId").passwordParameter("password") 
      .and().csrf() 
      .and().exceptionHandling().accessDeniedPage("/errorpage"); 

     } 

Bitte vorschlagen. Danke im Voraus!

+0

Bitte zeigen Sie Ihre web.xml – jlumietu

+0

Danke .. Ich habe einige weitere Konfigurationsdateien hinzugefügt, bitte schlagen Sie vor. – Sam

Antwort

0
registry.addResourceHandler("/static/**").addResourceLocations("/static/"); 
registry.addResourceHandler("/*.html").addResourceLocations("/WEB-INF/"); 
+0

Kein Glück! Ich glaube, die folgende Zeile ist nur hilfreich, wenn sich die Dateien in WEB-INF, register.addResourceHandler ("/ * .html") befinden. AddResourceLocations ("/ WEB-INF /"); Was ist, wenn es außerhalb der WEB-INF ist? Da build.html auf der Root-Ebene oder außerhalb der WEB-INF generiert wird – Sam

+0

Ist meine Federsicherheit, die Probleme verursacht, auf die build.html zuzugreifen? – Sam

+0

Ja, weil die Feder Sicherheit, also Möchten Sie das Zielverzeichnis überschreiben? Sie können den ' IhrPfad egWEB-INF 'konfigurieren, [Details siehe hier] (https://maven.apache.org/plugins/maven-war-plugin/examples/adding-filtering-webresources.html#Overriding_the_default_destination_directory) – chaoluo

Verwandte Themen