【问题标题】:Classic ASP: URL issues when duplicating an application经典 ASP:复制应用程序时的 URL 问题
【发布时间】:2010-12-06 16:15:46
【问题描述】:

我有一个旧的 Classic ASP 应用程序,我想并行复制它 - 也就是说,我想在原始应用程序旁边配置另一个副本(与不同的数据库通信)。

所以我有 //MyServer/MyApp1/,我很快也会有 //MyServer/MyApp2/... 到目前为止一切顺利。

除了应用程序中的许多 URL 是绝对的(例如 JS 和 CSS 文件),例如<script type="text/javascript" src="/MyApp1/menu.js"></script>.

我可以搜索对 /MyApp1/ 的引用并将其替换为 /MyApp2/,但这是一项烦人的任务,我必须在更新核心应用程序时重复此任务,并且如果想要创建其他副本 - 很可能虽然是暂时的。

我可以将这些 URL 更改为父路径,但这意味着我需要以不同的方式引用每个资源,具体取决于我在应用程序文件夹结构中的位置。同样,它会起作用,但出于多种原因,我不喜欢使用父路径。

鉴于 Classic ASP 中没有波浪号 (~) 功能(指应用程序根目录),我可以考虑其他替代方案吗?

【问题讨论】:

    标签: url asp-classic relative-path


    【解决方案1】:

    @CJM:我通常有一个db.asp,其中包含处理打开/关闭数据库连接的functions 和subs,作为我几乎所有页面的主要包含。在这个db.asp 中,我将定义一个appurlabsurl 路径,在你的情况下,它可以有/MyApp1,然后你可以在你的脚本中使用<script type="text/javascript" src="<%=appurl %>/menu.js"></script>

    您第一次执行此操作时,会有点搜索/替换任务,但一旦完成,后续“重复”项目将只需要更新该变量。

    【讨论】:

    • 实际上,我确实考虑过这种选择。我不确定我是否需要经常重复该操作以证明努力是合理的,但我的强迫症部分认为这是一个原则问题!这个解决方案可能和其他解决方案一样好。
    【解决方案2】:

    在经典 ASP 中,您可以使用 Server.MapPath("/") 获取根目录,或使用 Server.MapPath(".") 获取当前目录。

    【讨论】:

    • Server.MapPath 返回物理路径而不是 URL - 这是我感兴趣的 URL。
    猜你喜欢
    • 2015-09-03
    • 1970-01-01
    • 1970-01-01
    • 2013-11-26
    • 2014-06-03
    • 2014-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多