Chinaunix
标题:
怪,extjs引用问题。
[打印本页]
作者:
snow888
时间:
2012-11-06 16:19
标题:
怪,extjs引用问题。
代码如下:
index.jsp
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Hello Ext</title>
<link rel="stylesheet" type="text/css" href="<%=basePath%>WEB-INF/resources/css/ext-all.css">
<script type="text/javascript" src="<%=basePath%>WEB-INF/extjs/ext-all.js"></script>
<script type="text/javascript" src="<%=basePath%>WEB-INF/extjs/HelloExt.js"></script>
</head>
<body></body>
</html>
复制代码
文件目录结构
WebRoot
|-------META-INF
|-------WEB-INF
| |---------extjs
| | |--------ext-all.js
| | |--------HelloExt.js
| |---------resources
| |--------css
| |-------ext-all.css
|-------index.jsp
如果将 extjs、resources目录从 WEB-INF 目录下移动到 WebRoot 目录下,同时修改 index.jsp 文件中的引用路径为
<%=basePath%>extjs/ext-all.js
<%=basePath%>extjs/HelloExt.js
<%=basePath%>resources/css/ext-all.css
则一切正常。
是啥子原因啊?
作者:
nan_jia
时间:
2012-11-27 17:13
WEB-INF下的文件在WEB访问时是禁止的。
<%=basePath%>extjs/ext-all.js
你确定要将JS 放到WEB-INF下,需要写个过滤器,对于CSS 和 JS ,在过滤器里面重新定位一下实际位置。
作者:
snow888
时间:
2012-11-28 08:47
@nan_jia
问题是如何写啊?
这就是我不知道啊。
作者:
nan_jia
时间:
2012-11-28 09:26
CSS 和 JS 放到WEB-INF 下其实没有任何意义。 这样就很好,
src
- main
- webapp
- scripts
- styles
- images
- WEB-INF
- views
- jsp
- etc.
复制代码
作者:
snow888
时间:
2012-11-28 09:48
@nan_jia
我的jsp 放到 WEB-INF 下面也访问不到。
现在不知道是啥子原因了。
作者:
nan_jia
时间:
2012-11-28 17:20
JSP 也是客户端直接访问不到的。如果用STRUTS2 的话可以配置一下。其它的你就要想办法了,比如写个过滤器或是写个SERVLET转一下。
作者:
snow888
时间:
2012-11-30 10:35
@nan_jia
这个过滤器咋写啊?
能给个例子不?
作者:
tong0245
时间:
2012-12-13 13:15
本帖最后由 tong0245 于 2012-12-13 13:16 编辑
已经给回答了。
web-inf下的资源 ,只能被 应用程序(java servelt,jsp) 访问。
如果确实需要隐藏。还要客户端能访问 。
(感觉有点矛盾,如果jsp隐藏还有些意义,静态资源看到的应该都一样。隐藏意义大吗)
写专门的 action ,contrller。 配置个路径。去加载 对应的文件 写到浏览器就ok了
作者:
tong0245
时间:
2012-12-13 13:28
本帖最后由 tong0245 于 2012-12-13 13:51 编辑
@RequestMapping("/resources")
public class ResourcesController {
@RequestMapping("/{path}")
public void home(@PathVariable("path") String path,
HttpServletRequest request,
HttpServletResponse response) throws FileNotFoundException, IOException {
FileReader read = null;
BufferedReader br = null;
try {
String fileName = request.getSession().getServletContext().getRealPath(
"/")
+ "WEB-INF/"+path;
read = new FileReader(fileName);
br = new BufferedReader(read);
String line = null;
while ((line = br.readLine()) != null) {
response.getWriter().write(line);
}
} finally {
if (br != null) {
br.close();
}
if (read != null) {
read.close();
}
}
}
}
作者:
tong0245
时间:
2012-12-13 13:29
如要访问 WEB-inf/a.js
<script src=/resouces/a.js"/>
以上代码不保障无bug。 路径自己修改
作者:
hansion3406
时间:
2012-12-21 02:19
谢谢您的辛苦发帖
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2