在master Page或用户控件中解决路径的问题
问题描述:
需要在最顶端的MasterPage中注册JavaScript脚本文件,在Head中用Script标记无效,原因可能是此MasterPage被多层次继承使用,且最终使用这些MasterPage的aspx页面分布于不同的文件夹中,造成引用路径无效,导致JavaScript不被正确加载执行。
问题的解决:
使用ScriptManager来注册脚本文件,如下:
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Scripts>
<asp:ScriptReference Path="~/ERP/JS/jquery-1.2.6-vsdoc-cn.js" />
<asp:ScriptReference Path="~/ERP/JS/JavaScript_ERP.js" />
</Scripts>
</asp:ScriptManager>
Ok,由此完美的解决了路径问题。
在解决问题的过程中过发现了一些有趣的花絮:
在Head块中,加入Script标签时,VS的智能提示可以手工选择URL,完成后选取结果是<script. src = "../JS/JavaScript_ERP.js" type="text/javascript">。在属性页中也可以选取该Script的Src ,结果是<script. src ="http://www.cnblogs.com/ERP/JS/JavaScript_ERP.js" type="text/javascript">,很显然这两种选取相对路径的方法稍有不同。
另外在<asp:ScriptReference Path="~/ERP/JS/jquery-1.2.6-vsdoc-cn.js" />,使用的绝对路径。