IE9问题来自JBoss 7.1的静态内容

时间:2014-12-15 11:49:10

标签: jboss7.x

当从JBoss 7.1应用程序服务器提供静态内容时,如CSS文件(来自文件夹welcome-content或其子文件夹),除Internet Explorer(IE)之外的所有浏览器都可以识别实际类型没有任何问题(MIME输入文件。 JBoss 7.1中是否有特定的配置来实现这个/解决IE问题,或者只是我们需要在专用的Web应用服务器(如Apache HTTPD)中移动静态内容,在那里我们可以更好地控制MIME类型? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

不建议使用welcome-content为您自己的内容提供服务。如果您查看org.jboss.as.web.WelcomeContextService的代码,则添加的唯一默认类型为text/htmlimage/jpeg

public synchronized void start(StartContext startContext) throws StartException {
    HttpManagement httpManagement = httpManagementInjector.getOptionalValue();
        try {
            context.setPath("");
            context.addLifecycleListener(new ContextConfig());
            context.setDocBase(pathInjector.getValue() + File.separatorChar + "welcome-content");


            ....

            Wrapper wrapper = context.createWrapper();
            wrapper.setName("default");
            wrapper.setServletClass("org.apache.catalina.servlets.DefaultServlet");
            context.addChild(wrapper);

            context.addServletMapping("/", "default");
            context.addMimeMapping("html", "text/html");
            context.addMimeMapping("jpg", "image/jpeg");

            .....

            context.create();
        } catch (Exception e) {
            throw new StartException(MESSAGES.createWelcomeContextFailed(), e);
        }
        try {
            context.start();
        } catch (LifecycleException e) {
            throw new StartException(MESSAGES.startWelcomeContextFailed(), e);
        }
}

如果需要访问根目录中的静态资源,可以在根目录中部署自己的应用程序。

  1. 运行时停止服务器
  2. enable-welcome-root中将stanalone.xml设置为false,因为只有一个应用可以在根上下文中运行。
  3. <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
        <configuration>
            <mime-mapping name="manifest" value="text/xml"/>
        </configuration>
        <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
        <virtual-server name="default-host" enable-welcome-root="false">
            <alias name="localhost"/>
        </virtual-server>
    </subsystem> 
    
    1. 添加ROOT.war文件夹(爆炸战争)或您自己的文件夹.war作为deployments文件夹中名称的一部分。 ROOT.war的结构如下:
    2. ROOT.war
      ROOT.war/WEB-INF
      
      1. 在部署文件夹
      2. 中添加文件ROOT.war.dodeploy
      3. 启动服务器
      4. 另一种方法是添加apache作为前端来提供静态内容或使用公共CDN。

        我希望这个帮助