【问题标题】:Determine an absolute url to a resource using vbscript/classic asp使用 vbscript/classic asp 确定资源的绝对 URL
【发布时间】:2009-07-09 17:53:20
【问题描述】:

我为一个用经典 asp 编写的网站创建了一个伪用户控件。该控件只是一个 asp 页面(带有完整的 HTML 标题和正文),它位于父页面的 iframe 中。重点是创建一个类似 AJAX 的接口来异步上传文件(父页面包含一个大表单,我不想同时上传文件和提交表单的其余部分)。
问题是,我遇到了很多关于 iframe 页面/用户控件中使用的相对 url 的问题。根据 iframe 是哪个页面的子页面,相对 url 基本位置似乎会根据特定页面所在的目录而变化。

示例: www.website.com/directory1/application1.asp

...
<form>
    <input>
    ...
    <iframe src="../controls/FileUpload.asp"/>
    ...
</form>
...

www.website.com/directory1/directory2/application2.asp

...
<form>
    <input>
    ...
    <iframe src="../../controls/FileUpload.asp"/>
    ...
</form>
...

www.website.com/controls/FileUpload.asp

...
<form method="post" enctype="multipart/form-data" action="FileUpload.asp"><!--problem here-->
    <input type="file">
    <input type="submit"/>
</form>

iframe src 路径正常工作(请注意,隐藏在更深目录下的路径有一个额外的双点)。但在 FileUpload.asp 页面的代码中,相对 URL 不能始终如一地工作。如果您只是按原样加载页面,而不是在另一个页面的 iframe 中,我在表单标签的 action 属性中的 URL 就可以工作。您可以将其更改为“../controls/FileUpload.asp”,它将在第一个应用程序页面上运行,但您必须添加另一个“../”才能使其在第二个应用程序页面上运行。
我想知道是否有一种方法可以使用 vbscript 找到某个文件的绝对 URL。我确实使用了一个包含文件,我可以在其中对其进行硬编码,但如果可能的话,我宁愿不这样做。还有其他想法吗?

【问题讨论】:

    标签: url asp-classic vbscript absolute-path


    【解决方案1】:

    你也可以只从根目录输入一个绝对路径,例如 action="/controls/FileUpload.asp"

    【讨论】:

    • 是的。就是这样。我真的很愚蠢。
    • 没问题,事实上我总是这样做,无论我移动什么东西,添加一个额外的文件夹或其他什么。
    • 我实际上最终使用了 Request.ServerVariables("URL") 因为我只是回发到同一页面。这似乎是一种相当一致的访问资源的方式,无论它托管在哪个服务器上以及该站点位于哪个子目录中。
    • 我同意这一点。实际上,我有一个小的 PageSetup 包含文件,带有暗淡的 site_location site_location = lcase(Request.ServerVariables("URL")) 这个包含文件是我的所有页面,除非我有特殊情况,否则我将它用于我的所有 href url 和操作。这也很有帮助,因为当我更改页面时,我会升级我的版本命名方案。 blah_08.1.asp
    • 这就是我要说的。 . .我几乎总是使用绝对路径来避免这类问题。
    【解决方案2】:

    我不确定你是否正在寻找

    <%
    Response.Write Server.MapPath("./foo.txt")
    %>
    

    Some usefull code 来自Thorarin 我刚刚在different post看到的

    查找 ThisPage() 函数

    【讨论】:

    • 不,这只会给我文件系统中文件的绝对路径。我需要一个 URL(即我需要 'www.website.com/controls/FileUpload.asp' 而不是 'c:\inetpub\wwwroot\website\controls\FileUpload.asp')
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-14
    • 1970-01-01
    相关资源
    最近更新 更多