2013-12-10 172 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) %>