传统Domino Web应用中调用JS文件资源函数失败求助
在Domino Web应用中正确引用Resources里的JS文件资源
正确的路径写法(含关键参数)
Domino对Resources中的文件资源(File Resource)有特定的访问规则,你之前的写法都缺少了**?OpenFileResource**这个必要参数,正确的相对路径写法如下:
如果表单直接在数据库根目录下,使用相对路径:
<script type="text/javascript" src="msg.js?OpenFileResource"></script>
如果页面在数据库的子路径下(比如视图文件夹),可以用上级路径跳转:
<script type="text/javascript" src="../msg.js?OpenFileResource"></script>
也可以用基于数据库的绝对路径(适合跨页面引用):
<script type="text/javascript" src="/你的数据库名.nsf/msg.js?OpenFileResource"></script>
你之前的错误原因
- 所有尝试的路径都未添加
?OpenFileResource参数:Domino需要这个参数来识别请求的是文件资源,否则会返回数据库的默认页面或404错误 - 错误使用了
/Resources/Files/这类虚拟路径:Domino的文件资源并非存放在这个虚拟目录下,而是直接绑定到数据库实例,通过文件名+参数访问
关键检查项
- 文件资源属性设置:打开
msg.js的属性窗口,确认「存储选项」中的「Web访问」为「允许」,「文件类型」设置为「JavaScript」,避免MIME类型不匹配导致浏览器无法解析 - 按钮运行方式:确保表单上的按钮设置为「客户端JavaScript」运行,而非服务器端代理或公式
- 加载时机:将
<script>标签放在表单的<head>区域,或者按钮元素之前,保证脚本在按钮点击前已加载完成 - 权限验证:检查当前访问用户的数据库ACL权限,确保有读取文件资源的权限(默认ACL中普通用户有读取权限,若修改过需确认)
调试技巧
打开浏览器开发者工具(F12):
- 「网络」标签下查看
msg.js的请求状态:404=路径错误,403=权限不足,200=加载成功 - 「控制台」中输入
testRef,若返回函数定义说明脚本加载正常,若显示undefined则需排查路径或加载问题
你选择用文件资源存放新语法JS库的做法是正确的——Domino的脚本库会解析代码,对ES6+等新语法支持有限,而文件资源会原样输出内容,不会被Domino解析,适合存放现代JS库。
内容的提问来源于stack exchange,提问作者Matt Smith
相关产品推荐
相关产品推荐

