我使用的是MVC2架构。
我有一个Javacript文件,...which有对象hs
的声明(即var hs
)。
在我的aspx文件中,我使用<script>
标签调用(x.js)
文件,它运行正常。
我在一个内联脚本中使用hs
变量,并在aspx中为其属性赋值-可以在下面找到它:
<script type="text/javascript">
hs.graphicsDir = '../../Resources/graphics/';
...
...
</script>
当我通过Firebug进行调试时,我发现这个内联脚本在我的环境和发布中都在执行。
问题是,在我的环境中,graphicsDir
值被认为是完美的,并相应地执行,但在发布中,路径没有被正确地采用。
请建议如何让它也在部署中运行。
发布于 2011-08-25 08:37:15
尝尝这个
hs.graphicsDir ="<%= Url.Content("~/Resources/graphics")%>"
发布于 2011-08-25 09:53:06
按照另一个正确答案,您可以在Page_Load
方法中使用以下代码将正确的URL发送到客户端脚本:
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "correct_url", "var graphDir = \"" + Url.Content("~/Resources/graphics") + "\";", true);
然后在您的JS文件中包含以下内容:
hs.graphicsDir = graphDir;
因为它是MVC应用程序,而不是普通的ASP.NET,所以你必须按照here描述的步骤来添加后台代码-如果你不想这样做,你也可以直接在.aspx
文件中添加这样的代码:
<script type="text/javascript">
var graphDir = "<%=Url.Content("~/Resources/graphics")%>";
</script>
并且在.js
文件中具有与我上面解释的相同的代码。(使用全局变量)
https://stackoverflow.com/questions/7187164
复制