Я могу успешно скомпилировать файл S CSS в методе Change, но на стороне клиента wwwroot каталог не обновляется, пока я не нажму кнопку refre sh в браузере.
Есть ли способ запустить событие refre sh в этом методе действия Change?
Я пробовал все методы перенаправления, но они не работают. Любая помощь будет полезна. Пожалуйста, помогите мне преодолеть это.
`View (index.cs html)
<button onclick="clickHandler">Change Theme</button>
Script (site. js)
function clickHandler() {
$.ajax({
type: "POST",
url: "Home/Change",
data: { jsonData: JSON.stringify("") },
success: function (data) {
alert("saved successfully");
}
})
}
Controller Действие (HomeController.cs)
[HttpPost]
public IActionResult Change()
{
string basePath = _hostingEnvironment.WebRootPath;
string importFilePath = Path.Combine(basePath, "import.scss");
string inputFilePath = Path.Combine(basePath, "custom.scss");
string importContent = System.IO.File.ReadAllText(importFilePath);
string inputContent = "$accent: #08f410;\n$accent-font: #e3165b;" + importContent;
System.IO.File.WriteAllText(inputFilePath, inputContent);
string outputFilePath = Path.Combine(basePath, "custom.css");
CompilationOptions options = new CompilationOptions
{
IncludePaths = new[] { "node_modules/@{third-party-package}/" }
};
CompilationResult result = SassCompiler.CompileFile(inputFilePath, outputFilePath, null, options);
System.IO.File.WriteAllText(outputFilePath, result.CompiledContent);
return View("Index");
}
Макет
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>@ViewData["Title"] - DynamicTheme</title>
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
<link rel="stylesheet" href="~/css/site.css" />
<link rel="stylesheet" href="~/custom.css" />