2013-12-10 133 views
1

谁能告诉我,为什么这个工程:动态查询字符串

<script type="text/javascript" src="/js/jqFuncs.js?v=<%=jqFuncsScriptlastWriteTime %>" /> 

但这并不

<link type="text/css" rel="stylesheet" href="/css/site.css?v=<%=sitecsslastWriteTime %>" /> 

我后面的代码有:

public string jqFuncsScriptlastWriteTime = System.IO.File.GetLastWriteTime(@"c:/web/cs3/js/jqFuncs.js").ToString("yyMMdd"); 
public string sitecsslastWriteTime = System.IO.File.GetLastWriteTime(@"c:/web/cs3/css/site.css").ToString("yyMMdd"); 

的呈现的HTML看起来像这样:

<script type="text/javascript" src="/js/jqFuncs.js?v=131126" ></script> 
<link type="text/css" rel="stylesheet" href="/css/site.css?v=&lt;%=sitecsslastWriteTime %>" /> 
+0

你能不能尝试在你的链接标签添加rel =“样式表”?不确定是否在所有浏览器中都需要它。据此,它是必需的:http://www.w3schools.com/tags/tag_link.asp –

+0

该rel不会影响服务器重发变量 –

+0

所以这是一个服务器端问题 - 变量没有写入页面?你应该更新你的问题,而不是说“它不工作”。如果它没有将期望的变量值写入服务器端的页面,我猜想文件c:/web/cs3/css/site.css不存在或者您无权访问它。 –

回答

2

该问题是由ASP.NET处理LINK标记的方式引起的。这里是另一个问题/答案,提供了解决方案:

Problem in Expression tag to bind string variable

我会尝试链接标签添加RUNAT =“服务器”之首。如果这不起作用,那么我会使用另一个解决方案,即接受的答案。

+0

谢谢戴夫,这指出我有一个稍微不同的答案,但有一个工作! –

+0

NP - 我发现链接很有价值,因为它具有原因,为什么你的原始代码无法正常工作以及解决方案!快乐的编码! –

2

Hie Gordon,

hrefsrc之间有一些差异。更多细节在这里:

Difference between SRC and HREF

谢谢!

+0

嗯,我明白了。有没有一种方法可以将动态查询字符串添加到href中? –

0

为别人寻找我用这个答案:

<%= String.Format("<link type=\"text/css\" rel=\"stylesheet\" href=\"/css/site.css?v={0}\" />", sitecsslastWriteTime) %>