【发布时间】:2015-04-20 07:30:27
【问题描述】:
这是一个棘手的问题(至少对我来说):
我创建了一个 Javascript 文件,我们称之为“test.js”,我将它上传到共享组件 -> 静态文件存储库,但没有特别关联任何应用程序。
该文件已被页面 X 引用,没有缓存设置,在 Javascript -> 文件 URL 字段中,如下所示:#WORKSPACE_IMAGES#test.js
到目前为止一切顺利,库中的函数已被正确调用和执行。
但是我在文件中遇到了一个小错误,我已经着手更正,然后在文件的上传版本中进行了修改(文件小于 30000 字节,我能够当场修改它,点击应用更改)。在此之后,我删除了浏览器上的历史记录和临时文件。但是,当我再次运行该页面时,错误仍然存在,因为如控制台所示,使用的文件是以前的文件,而不是固定版本。有点奇怪......好吧,但这还不是全部,我决定从存储库中删除文件并再次上传(同名“test.js”),再次没有应用程序关联,删除历史记录和临时文件再次浏览器,并运行页面(再次)。再次(呵呵......)错误仍然存在,并且被调用的文件是不存在的。
所以最后我决定做一个小魔术并删除文件但不上传它,在页面属性上留下对#WORKSPACE_IMAGES#test.js 的引用,在浏览器上删除历史记录和临时文件并运行它再一次,这一次决定打破页面,但它仍然有效!,错误地因为它是错误文件但它在那里!然后我说:“好的,浏览器问题..”,在 Chrome 上运行它(第一次曾经)和它在那里的文件,然后我说:“好的,机器问题..”,在新机器上运行它(第一次)和它被加载的同一个不存在的错误文件......
此文件尚未被任何其他应用程序引用(目前)。在运行时,不存在的 url 文件是:
http://192.168.141.14/apex/wwv_flow_file_mgr.get_file?p_security_group_id=3321831433497474&p_fname=test.js
我已经用新名称上传了同一个文件,比如说 test_1.js,将页面引用更改为这个新名称,然后页面加载正确的新文件。但这不是一个可取的行为,我很幸运这是对文件的第一次引用,但如果这发生在更高级的阶段,那将是一个大问题。
很抱歉让它有点广泛,但我试图彻底解决这个问题,我错过了什么吗?为什么会这样?任何帮助将不胜感激。
我正在使用:
APEX 版本 4.2.3.00.08
数据库
- 核心 11.1.0.7.0 生产
- NLSRTL 版本 11.1.0.7.0 - 生产
- Oracle 数据库 11g 企业版版本 11.1.0.7.0 - 64 位
- 生产 PL/SQL 版本 11.1.0.7.0 - 生产
- 适用于 Solaris 的 TNS:版本 11.1.0.7.0 - 生产
【问题讨论】:
-
听起来完全像是一个缓存问题。我认为您可以在 Apex 中设置文件在 WORKSPACE 中缓存多长时间的选项
-
@KevinBrown 你会怎么做?
-
我必须在这里做点什么,使用此文档docs.oracle.com/cd/E21611_01/doc.11/e21058/…,因为 www_flow_files* 在我的配置中缓存了所有图像。
-
有时您也可以在 url 上添加一个随机参数,如 ttp://192.168.141.14/apex/wwv_flow_file_mgr.get_file?p_security_group_id=3321831433497474&p_fname=test.js?random=7386734 其中“random " 每次调用都会改变
-
@KevinBrown 让我明天试试,稍后再回复你。
标签: javascript oracle oracle-apex