Używam nowych funkcji pakowania ASP.NET (przy użyciu wstępnego wydania System.Web.Optmization 1.0.0) w mojej aplikacji internetowej ASP.NET MVC 3.Nowe funkcje pakietowania ASP.NET - Jak mogę programowo odświeżyć określony pakiet?
Działa świetnie.
Jednak mamy pewne dynamiczne CSS/JS, które są przechowywane w bazie danych.
Chcę, aby ten dodatek został dodany do oddzielnego pakietu dla mojego podstawowego pakietu, powiedz "DynamicBundle". Wiem, jak to zrobić, a nie problem.
Teraz moje pytanie brzmi: kiedy ten CSS/JS zostanie zmieniony w bazie danych, pakiet ten musi zostać "odświeżony", aby zawartość tych plików ponownie została odczytana w pakiecie.
Zasadniczo potrzebuję programu ASP.NET do ponownego wygenerowania tego magicznego guid/string, który jest dołączany do adresu URL pakietu.
Idealnie chciałbym odświeżyć konkretny pakiet , a nie całą tabelę pakietów.
Czy istnieje sposób, aby to zrobić?
EDIT:
Ok Drugi problem, nie może dowiedzieć się, jak dodać dynamiczne CSS/JS do wiązki. bundle.AddFile
pobiera wirtualną ścieżkę do pliku, ale nie jest to plik fizyczny, jest ciągiem znaków. Jak mam to zrobić? Na pewno nie muszę najpierw pisać ciągu do plików?
EDYTUJ 2: Postanowiłem więc nie łączyć moich dynamicznych treści. Dla 2 powodów:
- To tylko 1 plik, więc nie jestem zyskuje żadnej „pakowanie w wiązki” korzyści
- Bundling jest przeznaczony dla zawartości statycznej, to nie jest
Więc co mam done jest ręcznie skracane moje dynamiczne css/js w czasie wykonywania (raz, a następnie w pamięci podręcznej). W ten sposób mogę go łatwo odświeżyć, po prostu czyszcząc pamięć podręczną.
Mimo to, nadal jest to istotne pytanie (odświeżanie paczki), więc będę go pozostawić otwarte ..
Wygląda na to, że niestandardowy moduł obsługi wypluwa dynamiczny JS/CSS może być dla Ciebie lepszy. Tak działają niektóre inne silniki, które generują JS w czasie pracy (na przykład Ajax.NET Pro robi to: http://ajaxpro.codeplex.com/). Alternatywnie można użyć prostej strony .aspx, która zwraca zawartość dynamiczną, i ustawia nagłówki pamięci podręcznej tak, aby nie były buforowane, aby klient żądał ich za każdym razem. – nothingisnecessary