gpt4 book ai didi

java - 在 glassfish 上的哪里存储图像、CSS 和 javascript 文件?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:17:07 25 4
gpt4 key购买 nike

在发布此问题之前,我已经看了很多(相信我:),但我仍然感到困惑。场景如下:

使用 ReSTLet 2.0 在 glassfish v3 上托管 J2EE 网络应用程序 freemarker 模板文件位于/WEB-INF 文件夹中。这些模板使用相对 URL 链接到 jQuery/javascript 文件、一些静态图像和样式表。

由于将它们存储在/WEB-INF 中不是一个好习惯(如网络上许多地方所述)我将文件移动到 WebContent 文件夹


WebContent:
+--Images
-.jpg, .gif files
+--Styles
-myStyle.css
+--Scripts
+--jQLabel
+--mColorPicker
+--Images
+--javascripts
-.js files

我在 freemarker 模板/html 中将它们称为:

<link rel="stylesheet" type="text/css" href="${baseRef}/Styles/myStyle.css"  />

其中 ${baseRef} 是站点的根引用。站点部署在/Winbook。所以 css 在本地主机上的 URL 如下所示:

http://localhost:8080/Winbook/Styles/winbookwall.css <-- 使用 GET 检索

问题:

对于上述每个资源,我都得到一个 404 :( 我不确定这是否真的是应该 存储 css、图像或脚本的方式,也不确定 WebContent 文件夹是否适合它被存储。

问题:

  1. 为什么以上不起作用?我的意思是一定有错误,我只是不知道 :)
  2. 将上述文件存储在网络服务器/glassfish 上的最佳位置是什么?
  3. 如果这些资源部署在 .war 中,我该如何引用它们(在 HTML/freemarker 模板中)? (如果它们被放置在 WebContent 中,它们将被部署在 war 文件中,对吗?这是“合法的”还是好的做法?似乎闻起来 :)
  4. 我们是否必须在 glassfish 中为所有此类资源创建备用文档根目录(或 ReSTLet 中的等效目录类?)
  5. 为基于 Intranet 的应用程序进行此类部署以无缝定位资源的“最佳”方式/地点是什么?基于 JNDI 的查找? (我不知道那是怎么回事,另一个问题可能是关于 SO ;)

我完全糊涂了!自从我必须编写一个完整的端到端 Web 应用程序以来已经有一段时间了,这通常由“其他人”处理:)

谢谢!

最佳答案

我可能迟到了才发布对此的答案,但在这里。正如我所提到的,ReSTLet 会拦截 URL,您必须使用 Directory 类返回静态内容 - 为每个文件夹使用路径“war:///”或“war:///images/”等进行初始化.

它不工作的原因是 ReSTLet 的路由问题——目录文件夹在 URL 的代码顺序中是“最后一个”。目录是使用 Template.MODE_STARTS_WITH 创建的,其他目录(即 ReSTLets 或其他资源)是 Template.MODE_EQUALS

您应该手动更改路由顺序,或者在路由时将其推到 URI 列表的顶部

希望能帮助遇到同样问题的任何人。

这是杰罗姆回答的相关问题:Restlet Routing Nightmare

关于java - 在 glassfish 上的哪里存储图像、CSS 和 javascript 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5639791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com