当从JBoss 7.1应用程序服务器提供静态内容时,如CSS文件(来自文件夹welcome-content或其子文件夹),除Internet Explorer(IE)之外的所有浏览器都可以识别实际类型没有任何问题(MIME输入文件。 JBoss 7.1中是否有特定的配置来实现这个/解决IE问题,或者只是我们需要在专用的Web应用服务器(如Apache HTTPD)中移动静态内容,在那里我们可以更好地控制MIME类型? 提前谢谢。
答案 0 :(得分:0)
不建议使用welcome-content
为您自己的内容提供服务。如果您查看org.jboss.as.web.WelcomeContextService
的代码,则添加的唯一默认类型为text/html
和image/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);
}
}
如果需要访问根目录中的静态资源,可以在根目录中部署自己的应用程序。
enable-welcome-root
中将stanalone.xml
设置为false,因为只有一个应用可以在根上下文中运行。<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>
ROOT.war
文件夹(爆炸战争)或您自己的文件夹.war作为deployments文件夹中名称的一部分。 ROOT.war
的结构如下:ROOT.war ROOT.war/WEB-INF
ROOT.war.dodeploy
另一种方法是添加apache作为前端来提供静态内容或使用公共CDN。
我希望这个帮助