【问题标题】:Use jQuery UI and OpenLayers JS/CSS files without altering image paths在不更改图像路径的情况下使用 jQuery UI 和 OpenLayers JS/CSS 文件
【发布时间】:2013-09-08 16:33:38
【问题描述】:

我正在为我的新项目使用 openlayers、查询、查询 ui。我已经使用 :

包含了 js 文件
<ui:define name="content">

    <h:outputScript   name="/js/openlayers/OpenLayers.js"/>

    <h:outputStylesheet name="/css/jquery-ui-1.8.22.custom.css" ></h:outputStylesheet> 

    <h:outputStylesheet name="/js/jquery/css/jquery_table.css" ></h:outputStylesheet>

    <h:outputStylesheet name="/js/jquery/css/modal.css" ></h:outputStylesheet>      

    <h:outputScript   name="/js/jquery/jquery.js"/>

    <h:outputScript   name="/js/jquery/jquery-ui-1.8.22.custom.min.js"/>   

</ui:define name="content">

这是正文中的代码:

<h:body>
   <ui:insert name="content">Content</ui:insert>
</h:body>

虽然 Openlayers 和 jquery 在呈现的 html 中显示:

已加载所有样式未加载,并且在firebug控制台中弹出以下错误消息:

"NetworkError: 404  - http://localhost:8282/ProjectX/GISPages/Alarms/theme/default/style.css"

style.css

"NetworkError: 404  - http://localhost:8282/ProjectX/GISPages/Alarms/img/west-mini.png"

west-mini.png

"NetworkError: 404  - http://localhost:8282/ProjectX/GISPages/Alarms/img/east-mini.png"

east-mini.png

"NetworkError: 404  - http://localhost:8282/ProjectX/GISPages/Alarms/img/north-mini.png"

north-mini.png

"NetworkError: 404  - http://localhost:8282/ProjectX/GISPages/Alarms/img/zoom-plus-mini.png"

zoom-p...ini.png

"NetworkError: 404  - http://localhost:8282/ProjectX/GISPages/Alarms/img/south-mini.png"

同样无法加载 jquery 图片:

"NetworkError: 404  - http://localhost:8282/ProjectX/javax.faces.resource/css/images/ui-bg_glass_75_e6e6e6_1x400.png"

ui-bg_...400.png

"NetworkError: 404  - http://localhost:8282/ProjectX/javax.faces.resource/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png"

ui-bg_...100.png

"NetworkError: 404  - http://localhost:8282/ProjectX/javax.faces.resource/css/images/ui-icons_888888_256x240.png"

我可以使用以下方式加载 png 图像:

http://localhost:8282/ProjectX/javax.faces.resource/css/images/ui-bg_glass_75_e6e6e6_1x400.png.xhtml

另外,我可以使用以下方式查看样式:

http://localhost:8282/ProjectX/javax.faces.resource/js/openlayers/theme/default/style.css.xhtml

当我使用 openlayers 手动包含此样式(style.css)时,尝试再次加载呈现错误。 如何在不改变路径的情况下存储 openlayer、jquery 图像和 css、图像等额外文件?

fig: my resource folder structure

编辑:

添加 URL 模式和全方位后:

<servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.xhtml</url-pattern>
        <url-pattern>/javax.faces.resource/*</url-pattern>
        <url-pattern>/rfRes/*</url-pattern>
    </servlet-mapping> 

我得到错误:

"NetworkError: 404  - http://localhost:8282/ProjectX/GISPages/Alarms/RES_NOT_FOUND"

RES_NOT_FOUND

"NetworkError: 500  - http://localhost:8282/ProjectX/rfRes/datatable.ecss?db=eAG7mShzEgAFjAIg&ln=org.richfaces"

【问题讨论】:

    标签: jquery-ui jsf-2 richfaces openlayers facelets


    【解决方案1】:

    如何在不改变路径的情况下存储 openlayer、jquery 图像和 css、图像等额外文件?

    您可以为此使用OmniFaces UnmappedResourceHandler。有关使用说明,另请参阅 showcase

    安装

    要让它运行,这个处理程序需要在 faces-config.xml 中注册如下:

    <application>
        <resource-handler>org.omnifaces.resourcehandler.UnmappedResourceHandler</resource-handler>
    </application>
    

    FacesServlet 需要在web.xml 中的/javax.faces.resource/* 上有一个额外的映射。例如,假设您已经在*.xhtml 上进行了映射:

    <servlet-mapping>
        <servlet-name>facesServlet</servlet-name>
        <url-pattern>*.xhtml</url-pattern>
        <url-pattern>/javax.faces.resource/*</url-pattern>
    </servlet-mapping>
    

    如果这不是一个选项,那么您真的无法通过 #{resource} 引用替换 CSS 背景图像 URL。

    另见:

    【讨论】:

    • NetworkError: 404 Not Found - localhost:8282/ProjectX/rfRes/skinning.ecss?db=eAG7mShzEgAFjAIg。我认为它无法加载richfaces 蒙皮。有什么建议吗?
    • 您没有在问题中提到您正在使用 RichFaces,因此我无法在答案中考虑到这一点。顺便说一句,当 RichFaces 已经捆绑了 jQuery 时,看到您手动包含 jQuery 也很奇怪。这只会导致 jQuery 版本冲突和所有颜色的 JS 错误。无论如何...尝试将 URL 模式 /rfRes/* 添加到映射中。诚然,我从未在 RichFaces 上测试过,但理论上应该可以。
    • 看起来它与 RichFaces 不兼容。好吧,如果你想坚持使用 RichFaces(尽管由于某种原因它做的许多事情与标准不同),那么你需要回退到 CSS 文件中的 #{resource} 引用。
    猜你喜欢
    • 2016-03-14
    • 1970-01-01
    • 1970-01-01
    • 2021-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-02
    • 1970-01-01
    相关资源
    最近更新 更多