JSF 不加载 css 文件,错误消息:"The resource from this URL is not text"



这是我的JSF文件头:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" 
  xmlns:f="http://java.sun.com/jsf/core" 
  xmlns:h="http://java.sun.com/jsf/html"
  xmlns:ui="http://java.sun.com/jsf/facelets"
  xmlns:p="http://primefaces.org/ui">
<h:head>
    <meta http-equiv="content-type" content="text/html;charset=iso-8859-1"/>
    <title>#{txt.TXT_TITLE_LOGIN}</title>
    <link rel="stylesheet" type="text/css" href="scripts/styles.css"/>
    <link rel="shortcut icon" href="./images/favicon.ico"></link>
    <script src="./scripts/scripts.js" type="text/javascript"/>
</h:head>
<body...

当我打开页面时,样式没有加载,看起来很难看,Firebug显示如下:

<link href="scripts/styles.css" type="text/css" rel="stylesheet">
    The resource from this URL is not text: http://localhost:8080/EWC/scripts/styles.css
</link>

…但文件在那里,在位置/EWC/scripts。

当我打开一些其他页面非常相同的标题都是好的。然后我回到这个页面,它也很好。但是,当这个页面在清空浏览器现金后第一次加载时,又会发生这种情况。

出什么事了?

已解析
似乎问题与会话到期时的授权重定向有关,但在提交JSF表单时不起作用,页面保持不变。

下面的代码没有捕获css文件请求,所以它们通过gotoLogin()转发到登录页面(如果用户没有登录)。

if( requestURI.startsWith(req.getContextPath() + ResourceHandler.RESOURCE_IDENTIFIER) )
    chain.doFilter(request, response);
    return;
else
    gotoLogin(null, request, response);
    return;

我添加了

if( requestURI.endsWith("css") )
    chain.doFilter(request, response);
    return;

正如BalusC所说,我应该在标题中使用<h:outputStylesheet>, <h:outputScript><h:graphicImage>而不是<link>, <script><img>,这将永远不会发生。

相关内容

  • 没有找到相关文章

最新更新