2015-04-03 151 views
3

我使用GlassFish 4.1在NetBeans 8.02中创建了一个Java JSF应用程序。一个作为的facelet创建的网页包含以下标签:无法找到资源css,style.css

<h:head> 
     <title>Address Book: Add Entry</title> 
     <h:outputStylesheet name="style.css" library="css"/> 
    </h:head> 

当我运行的应用程序,我得到的错误:

Unable to find resource css, style.css 

我看在网页/资源/ css文件夹中我的项目和style.css存在。如果我从另一个项目添加style.css文件夹,一切正常。

我需要做什么以使style.css自动放置在正确的文件夹中,而不是手动执行 - 或者在设置我的项目或编写xhtml时有什么缺失标签?

+0

如果'style.css'文件是在对应用程序根目录'/资源/ css'确实可用,然后检查如果'style.css'真的在所需的目录中可用,那么从已部署的WAR文件中查看。如果它在部署的WAR中不可用,那么在创建'style.css'后,您可能会意外忘记进行硬部署,NetBeans基本上需要创建新文件夹/目录并将一些文件放入其中。 – Tiny 2015-04-03 19:52:30

回答

7

在我看来,你没有使用正确的/资源文件夹,你应该使用Web应用程序根目录下的/资源目录(的WebContent的子文件夹)mentionned由微小的评论,而不是包含您的java类的资源文件夹。这里有一个例子:

enter image description here

但是,你没有正确使用h:outputStylesheet,你应该更好地使用这样的:

<h:outputStylesheet name="css/styles.css" /> 

一个的相关详细回答关于JSF的资源库提供BalusC:What is the JSF resource library for and how should it be used?

+0

在项目视图资源/ css位于Web Pages文件夹下。在文件视图中,资源/ css位于build/web /,web /下,位于dist /下的.war文件中。在每种情况下,它只包含cssLayout.css和default.css,而不包含style.css。即使在我为Tarik更改h:outputStylesheet并执行硬部署后,style.css所做的更改仍未添加到任何资源/ css文件夹。 – jisteinberg 2015-04-06 15:55:42

+0

@jisteinberg我不明白你在说什么,请去你的WebContent文件夹,如果你没有一个名为资源的子文件夹然后创建一个,然后创建一个css文件夹,并把你的styles.css文件。哪一部分不清楚? – Tarik 2015-04-06 15:59:10

+0

我手动将styles.css文件放在资源/ css文件夹中,它工作。谢谢。因此,当您在facelet中引用它并部署该项目时,该文件不会自动在css文件夹下创建? – jisteinberg 2015-04-06 19:11:52

1

这似乎是Netbeans 8.1的一个问题。但是,版本7会正确生成模板页面。

尝试更换H:下面一个outputStylesheet标签:

<link href="./resources/css/style.css" rel="stylesheet" type="text/css"/> 
0

试试这个:

我有同样的问题,但很容易解决,如果你知道属性库来获取默认路径为了我。

的CSS样式表的默认位置是“./resources/css/yourcss.css”