Javascript Web产品:外部JS文件中的绝对URL?

Javascript Web产品:外部JS文件中的绝对URL?,javascript,workflow,maintenance,production,Javascript,Workflow,Maintenance,Production,我想知道,您是否知道在外部javascript文件中指定绝对URL的最佳实践?我正在寻找一个可维护的解决方案 基本场景是当我需要在运行时通过javascript包含css文件,或对某些URL进行ajax调用,以及其他通常需要在(外部)javascript文件内指定URL的情况 如果要更改服务器,或者可能引入mod_rewrite,如何防止手动编辑js文件中的所有URL?您可以使用以下属性创建URL字符串: var thisurl = document.location.href; 这将为您提供

我想知道,您是否知道在外部javascript文件中指定绝对URL的最佳实践?我正在寻找一个可维护的解决方案

基本场景是当我需要在运行时通过javascript包含css文件,或对某些URL进行ajax调用,以及其他通常需要在(外部)javascript文件内指定URL的情况


如果要更改服务器,或者可能引入mod_rewrite,如何防止手动编辑js文件中的所有URL?

您可以使用以下属性创建URL字符串:

var thisurl = document.location.href;
这将为您提供当前页面的URL字符串,希望您可以从那里解析它

或者,如果您使用的是服务器端语言(例如PHP),那么您可以使用该语言获取URL字符串,这会更快(从这里粘贴副本;我未测试):


var thisurl=;

或者,您可以将属性存储在服务器上的文件中,该文件可以通过服务器端语言进行解析。

您可以使用以下属性构建URL字符串:

var thisurl = document.location.href;
这将为您提供当前页面的URL字符串,希望您可以从那里解析它

或者,如果您使用的是服务器端语言(例如PHP),那么您可以使用该语言获取URL字符串,这会更快(从这里粘贴副本;我未测试):


var thisurl=;

或者您可以将属性存储在服务器上的文件中,该文件可以通过服务器端语言进行解析。

您可以引入javasript类,该类保留所有URL。像这样的

function urlContainer(){
    this.searchServer = 'http://search.example.com';
    this.submitServer = 'http://submit.example.com';
}
然后在其他脚本文件中引用此类,并使用如下URL:

alert (new urlContainer().searchServer);

因此,所有外部URL都将包含在一个文件中。您可以更具创造性地使用BaseURL和连接,但这取决于您。

您可以引入javasript类,它保留所有URL。像这样的

function urlContainer(){
    this.searchServer = 'http://search.example.com';
    this.submitServer = 'http://submit.example.com';
}
然后在其他脚本文件中引用此类,并使用如下URL:

alert (new urlContainer().searchServer);

因此,所有外部URL都将包含在一个文件中。您可以更具创造性地使用BaseURL和连接,但这取决于您。

另一种解决方案(可能更简单)可能是将您想要的URL存储到一个隐藏字段值中,然后使用客户端Javascript访问它。请注意,隐藏字段需要是HtmlInputHidden或HiddenField控件。(基本上,它需要有
runat=“server”
属性,以便可以在服务器端设置它的值。)

另一种解决方案(可能更简单)可能是简单地将您想要的URL存储到一个隐藏字段值中,然后使用客户端Javascript访问它。请注意,隐藏字段需要是HtmlInputHidden或HiddenField控件。(基本上,它需要有
runat=“server”
属性,这样它的值就可以在服务器端设置。)

我在.NET中也做了类似的工作。如果OP告诉我们服务器端平台会有所帮助。我在.NET中也做了类似的工作。如果OP告诉我们服务器端平台会有所帮助。好的解决方案,假设所有可能的服务器URL都事先已知。如果需要,可以动态生成此文件。事实上,这与我的第三个选项类似,但您需要知道/解析Javascript来更新它:)好的解决方案,假设预先知道所有可能的服务器URL。如果需要,可以动态生成此文件。实际上,这类似于我的第三个选项,但您需要知道/解析Javascript来更新它:)