如何链接到ColdFusion 10中站点文件夹上方的JavaScript文件?

时间:2014-01-17 19:43:46

标签: javascript coldfusion coldfusion-10

这是问题所在。我工作的公司有很多站点,其中许多使用相同的jQuery UI小部件,如datepicker。我真的希望在服务器顶层的_javascript文件夹中只有每个小部件的一个副本。问题是因为代码在站点文件夹之外,我需要使用ColdFusion映射来指向它。显然,您不能将这些用于脚本或链接标记。它没有扩展映射。所以我尝试使用" ExpandPath"并得到一条消息,表示它无权访问该资源。一些研究发现JavaScript无法访问本地文件系统上的文件,因为这将是一个安全漏洞。所以,虽然它很难看,但我尝试将CS​​S文件包装在标签中,将JS文件包装在标签中,然后将它们包含在cfinclude中。那是有效的。主要问题是显然css使用相对链接链接到所使用的图像,并且这些都被破坏了,因为JS被包含在脚本和图像本身的另一个文件夹中的页面上。

这是我的问题。这里有什么好的解决方案吗?我不认为我想做的事情是不合理的,但是我应该放弃并在每个站点文件夹中保留一个小部件的副本吗?提前感谢您的帮助。

2 个答案:

答案 0 :(得分:6)

包含的javascript文件,如CSS文件,不必由ColdFusion处理器触及。您只需使用ColdFusion制作链接并将其提供给浏览器,就像您将图像,附件或链接指向其他网站一样。唯一的区别是此链接位于<script标记中。因此,如果您有多个站点并且想要访问所有站点上的common / js目录,则必须在Web服务器本身(IIS / Apache)中完成工作。

在您选择的Web服务器中,为您的javascript目录创建一个名为/js的虚拟目录(或符号链接)(或您选择的任何名称)。对所有站点执行此操作,并且您有一个可从所有托管域访问的/ js目录。

答案 1 :(得分:0)

我的情况是我们所有的ColdFusion工作都只是内联网。虽然我们只有一些网站,但不止一个。我们还使用开发服务器,而不是让人们在他们的硬盘上开发。

我们做的第一件事是在&#34; /&#34;上创建一个映射。指向某个目录。让我们说它是c:\ fred。在c:\ fred中我们有子目录,名为images,css,js,udf等。这样我们可以做这样的事情:

<cfinclude template = "/Templates/Reportheader.cfm">
<link rel= "stylesheet" type= "text/css" href= "/css/cashflow.css" title= "style1">
<script type="text/javascript" src="/JS/browserDetect.js" ></script>

在任何申请中。