我有一个域名:TestSite.com.我为这个网站创建了几个子域名,并将它们称为first.TestSite.com,second.TestSite.com等.
如何在不必在first.TestSite.com的html或aspx文件中对其名称进行硬编码的情况下相对引用TestSite.com?如果我有一个文件夹TestSite和一个子文件夹,我的意思是(使用文件夹作为示例)
测试网站/第一
,然后从第一个我可以参考其父TestSite文件夹
../
我从一开始就使用什么来引用TestSite.com.TestSite.com?谢谢.
Mat*_*hen 11
没有办法使用纯粹的相对链接.您必须将其编程为字符串操作.
就像是:
var host = location.host;
var lastPeriod = host.lastIndexOf(".");
var remainder = host.substring(0, lastPeriod);
var afterSecondLastPeriod = remainder.lastIndexOf('.') + 1
var baseDomain = host.substring(afterSecondLastPeriod);
console.log(baseDomain);
Run Code Online (Sandbox Code Playgroud)
编辑:使用正则表达式的较短版本:
var baseDomain = host.match(/[^.]*\.[^.]*$/)[0]
Run Code Online (Sandbox Code Playgroud)
这是通用的,因此它将始终返回最后一部分.无论它是a.TestSite.com,b.a.TestSite.com等它会返回TestSite.com.
如果此假设不正确,您将不得不修改它.
如果要保留相关链接,可以使用该base元素.
[base element的href]属性指定一个绝对URI,它充当解析相对URI的基URI.
因此,添加一个base元素,指定href您喜欢的内容,并且页面上的所有相对URI现在都使用您指定的URI作为基本 URI.
<head>
<base href="http://testsite.com" />
</head>
Run Code Online (Sandbox Code Playgroud)
这就是你所需要的.但是,如果您想使事情变得更清洁,可以使用web.config从中提取该URI .这是一个aspx片段:System.Configuration.ConfigurationManager.AppSettings
<head>
<base href="<%= ConfigurationManager.AppSettings["rootdomain"] %>" />
</head>
Run Code Online (Sandbox Code Playgroud)
和web.config:
<configuration>
<appSettings>
<add name="rootdomain" value="http://testsite.com" />
</appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)
此方法允许您从一个元素中影响许多元素,并且可以从web.config驱动其值.
| 归档时间: |
|
| 查看次数: |
917 次 |
| 最近记录: |