【问题标题】:How can I link to a JavaScript file above the site folder in ColdFusion 10?如何链接到 ColdFusion 10 中站点文件夹上方的 JavaScript 文件?
【发布时间】:2014-01-17 19:43:46
【问题描述】:

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

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

【问题讨论】:

    标签: javascript coldfusion coldfusion-10


    【解决方案1】:

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

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

    【讨论】:

    • 这看起来可以解决我的问题,谢谢!我以前不熟悉虚拟目录。我查了怎么做,看来您需要直接访问服务器上的 ColdFusion 文件夹。由于我无权访问它,并且需要让我们的技术人员在他们可以解决的情况下为我创建目录,所以无论如何可以从 CF Admin 设置虚拟目录? (看起来不像)
    • 如果您想使用虚拟目录,请询问可以设置它的人。如果需要一段时间,那是值得的。
    • "直接访问服务器上的 ColdFusion 文件夹。"不,ColdFusion 真的与它无关。您可以卸载 ColdFusion,您的 Web 服务器仍然可以提供 javascript。 Web 服务器 (IIS/Apache/etc.) 进程需要访问具有 javascript 文件的服务器上的物理目录。你是对的,技术人员可能会为你设置这个。
    【解决方案2】:

    我的情况是我们所有的 ColdFusion 工作都只是 Intranet。虽然我们只有几个站点,但不止一个。我们还使用开发服务器,而不是让人们在硬盘上进行开发。

    我们做的第一件事是在“/”上创建一个映射以指向某个目录。假设它是 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>
    

    在任何应用程序中。

    【讨论】:

    • 感谢您的回复,Dan,但除非我遗漏了什么,否则这看起来与我已经尝试过的没有任何不同。设置到 JS 文件夹的映射不起作用。我发现您可以将映射与 cfinclude 一起使用,但不能使用脚本或链接。
    • 你发现你不能,但我可以。您可能错过的是我们映射到单个字符并且没​​有尝试扩展路径。
    • 感谢您的回复,但我们无法将“/”映射到其他位置,因为我们仍然需要“/”来指向我们网站的实际根目录。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-16
    • 1970-01-01
    • 2023-01-13
    • 2021-03-02
    相关资源
    最近更新 更多