OpenShift使用标题文本/ plain而不是text / html返回响应

时间:2015-12-05 13:06:24

标签: java angularjs spring-mvc tomcat openshift

首先,我的英语不好(我是越南人),对不起。

我是OpenShift的新手。我在https://bms-sps2.rhcloud.com/bms在OpenShift上托管了我的Java Web应用程序(Spring MVC Restful + AngularJS)。当我访问它时,OpenShift返回纯文本页面而不是html页面。但是当我在localhost上开发应用程序时,这个问题并没有发生。

problem

以下是我的申请结构:

structure

我的资源映射配置:

<mvc:resources mapping="/" location="/app/index.html/" cache-period="86400" />

在我的研究中,这个问题是因为

  

MIME类型映射:在提供静态资源时,Tomcat将自动生成&#34; Content-Type&#34;基于资源文件扩展名的标头,基于web.xml文件中的这些映射。

如何在不延长的情况下为文件添加mime-mapping?我尝试添加mime-mapping如下:

<mime-mapping>
    <extension></extension>
    <mime-type>text/html</mime-type>
</mime-mapping>

<mime-mapping>
    <extension>*</extension>
    <mime-type>text/html</mime-type>
</mime-mapping>

<mime-mapping>
    <extension></extension>
    <mime-type>text/html</mime-type>
</mime-mapping>
<mime-mapping>
    <extension>*</extension>
    <mime-type>text/html</mime-type>
</mime-mapping>

但他们都没有成功。

更新:添加web.xml

<web-app>
<display-name>Business Management System</display-name>

<servlet>
    <servlet-name>bms</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>bms</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener
    </listener-class>
</listener>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        /WEB-INF/root-context.xml
    </param-value>
</context-param>

<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy
    </filter-class>
</filter>
<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/rest/*</url-pattern>
</filter-mapping>

<filter>
    <filter-name>hibernateFilter</filter-name>
    <filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter
    </filter-class>
    <init-param>
        <param-name>sessionFactoryBeanName</param-name>
        <param-value>sessionFactory</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>hibernateFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

有没有人可以帮我解决这个问题?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我可以看到这个url https://bms-sps2.rhcloud.com/bms/index.html#/按预期工作(显示为html),但根上下文路径不起作用。我的建议是在web.xml中添加welcome-file-list,以便tomcat可以将页面作为html提供。

<welcome-file-list>  
   <welcome-file>index.html</welcome-file>  
   <welcome-file>index</welcome-file>  
  </welcome-file-list>