在回答this topic中顯示瞭如何使用BundleTransformer爲LESS和LessTranslator傳遞變量到LESS文件。不幸在SASS類的BundleTransformer中沒有可用的屬性GlobalVariables。可以用自定義變量(顏色值)編譯SASS文件取決於登錄用戶嗎?在ASP.NET MVC中使用自定義值變量SASS
0
A
回答
1
我沒有使用SASS擴展,所以我不能說一定的,但你總是可以創建一個自定義的包轉換來取代本質上是'模板'文件。
所以,你可以有聲明,像這樣
$variable: {{variable-placeholder}};
然後使用類似下面的替換值的東西變量SASS文件。
public class ReplacePlaceholdersBundleTransform : IBundleTransform
{
private readonly IDictionary<string, string> _replacements;
public ReplacePlaceholdersBundleTransform()
{
_replacements = new Dictionary<string, string>();
}
public ReplacePlaceholdersBundleTransform(IDictionary<string,string> replacements)
{
_replacements = replacements ?? new Dictionary<string,string>();
}
public void Process(BundleContext context, BundleResponse response)
{
if (_replacements.IsNullOrEmpty())
return;
foreach (var replacement in _replacements)
{
response.Content = response.Content.Replace(replacement.Key, replacement.Value);
}
}
}
要使用它添加了轉換到包。
yourBundle.Transforms.Add(
new ReplacePlaceholdersBundleTransform(new Dictionary<string, Func<BundleContext, string>>
{
{"{{variable-placeholder}}", "red},
}));
我們用於腳本類似的東西轉換到捆綁的URL注入腳本文件在運行時獲得通過優化框架生成完整的URL。如果在SASS翻譯發生後執行轉換,這肯定可能不適用於你,但是,我沒有時間啓動SASS項目來測試它。
我希望這會有所幫助。
0
解決「BundleTransformer.Less inject variables depending on context/request」討論中描述的類似問題(僅用於LESS)。即你還必須編寫自己的緩存系統實現並使用InjectContentItemTransform
類(聲明變量需要使用Sass語法)。但與LESS不同,您無法修改變量(只能聲明變量)。
相關問題
- 1. 引導自定義變量的Rails SASS
- 2. 在SASS/SCSS中定義變量覆蓋
- 3. Sass :: SyntaxError未定義變量
- 4. SASS中的未定義變量,儘管變量定義如上
- 5. 某些bootstrap-sass(v2.0.3)變量不工作的自定義值
- 6. 使用ASP.NET在Mac中設置自定義環境變量5
- 7. 在extjs自定義主題中的sass變量
- 8. 使用自定義變量
- 9. asp.net mvc/jquery的自定義css/sass風格
- 10. 獲得來自定義(ASP.NET MVC)值
- 11. ASP.NET MVC ModelBinding - 設置自定義值
- 12. 在自定義變量中使用名稱的多個值
- 13. 在ASP.NET MVC中創建自定義RequestContext
- 14. 如何在asp.net中自定義Url mvc
- 15. 在ASP.NET MVC中自定義外部URL
- 16. 如何使用自定義動作在asp.net中生成自定義網址mvc
- 17. SASS:使用材料變量(自angular2)
- 18. Asp.Net MVC 3自定義模型變量對象
- 19. 在ASP.NET MVC應用程序中使用自定義jQuery函數
- 20. 在自定義屬性中傳遞自定義參數 - ASP.NET MVC
- 21. 使用變量'值'在KornShell中定義變量'名稱'
- 22. 使用Grunt-Contrib-Sass在編譯時指定SASS變量
- 23. 如何在ASP.NET MVC中定義視圖級變量?
- 24. ASP.NET MVC自定義的HttpHandler
- 25. 自定義asp.net mvc 3 jquery.validate.unobtrusive
- 26. ASP.NET MVC EditorFor自定義JavaScript
- 27. asp.net MVC自定義路由
- 28. ASP.NET MVC授權 - 自定義?
- 29. Asp.Net MVC自定義ModelBinder
- 30. ASP.NET MVC - 自定義成員
看着[這個問題](http://stackoverflow.com/questions/16283537/what-is-the-proper-use-of-iitemtransform-for-correcting-paths-in-css-bundling-wi)你可能會適應這個使用IItemTransform來限制替換範圍到一個單一的文件,我還沒有嘗試過,但它是值得調查,如果上述不起作用。 – benembery
你好,謝謝你的回覆。在我的情況下,問題是我沒有單一的.scss文件,但有很多導入文件,我想要替換的變量位於導入文件中。你知道如何在替換之前合併所有文件嗎? – cadi2108
我移動變量來修改主文件,現在內容被替換。但是,像你在這裏涉及的問題,我的修改被忽略。 – cadi2108