fex-team / fis3

FIS3
http://fis.baidu.com
BSD 2-Clause "Simplified" License
2.79k stars 693 forks source link

关于使用FIS3的疑问 #910

Open tenmue opened 8 years ago

tenmue commented 8 years ago

项目目录结构

-demo
  -js
      +a.js
      +b.js
  -views
      +a.jsp
  -b.jsp
  -fis-conf.js

fis-conf.js 内容如下

fis.match('*.{css,js,less,png}',{
    useHash: true
});

fis.match('**',{
    relative: true
});

a.jsp和b.jsp内容(两个文件一致,只是目录不同)

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<base href="<%=basePath%>">
<title>fis_demo</title>
<script type="text/javascript" src="js/a.js"></script>
<script type="text/javascript" src="js/b.js"></script>
</head>
<body>
</body>
</html>

疑问

a.jsp和b.jsp都加上了<base href="<%=basePath%>"> 运行FIS3后输出内容为: a.jsp没有加上MD5戳;b.jsp加上了MD5戳

因为b.jsp必须在web server中才能够定位到相关js文件,而a.jsp可以直接定位到,这也是两个文件的区别所在

hefangshi commented 8 years ago

FIS必须要求使用源代码路径来引用资源,不支持加上后端模板变量。关于这类讨论可以在fis和fis3的历史issue中查看。

FIS的功能可以完全覆盖这类后端模板变量的需求。