2013-03-28 27 views
0

我需要将ASP.NET网页转换为纯HTML网页。ResolveUrl等效于无需任何服务器技术的加载脚本

我所做的大部分工作,除了一两件事:我无法找到一个方法来替换ASP.NET Page.ResolveUrl功能时,我设置为一个JavaScript文件的引用:

<script src="<%= Page.ResolveUrl("~/Scripts/MyScript.js") %>" type="text/javascript"></script> 

我知道一些用户发布了有关ResolveUrl函数的JavaScript等价物的问题,但在我的情况下,您必须记住必须使用该解决方案来加载.js,因此对.js库的任何引用都可能导致鸡 - 和 - 蛋问题。

编辑

我的网页,我的脚本都包含在一个框架。网页可以部署在一个子文件夹中,这就是我使用ResolveUrl函数(而不是硬编码路径)的主要原因。

回答

1

为什么不仅仅使用相对引用取决于您的页面所在的文件夹。它总是从页面相对所以它不会不管您的网站是从

运行在根,你可以使用

<script src="Scripts/MyScript.js" type="text/javascript"></script> 

如果你的网页是一个子文件夹,然后用

<script src="../Scripts/MyScript.js" type="text/javascript"></script> 
0

变化

<script src="<%= Page.ResolveUrl("~/Scripts/MyScript.js") %>" type="text/javascript"></script> 

到:

<script src="/Scripts/MyScript.js" type="text/javascript"></script> 

必须/(根文件夹)

更新

试加开始:<base href="http://yoursite.com/mainfolder"> 头标签。

+1

如果网站托管在一个子文件夹中,这将不起作用。例如,www.mysite.com/marketing/ – Win

+0

...我的网站就是这种情况。 –

+0

在这种情况下,请尝试添加javascript动态,在所有url之前添加一个baseUrl。我在我的项目中使用了requirejs(requirejs.org), 只是设置为: 'requirejs.config({www.mysite.com/marketing/libs''' '')更多:http:// requirejs.org/docs/api.html –