【发布时间】:2018-03-16 12:00:18
【问题描述】:
我正在使用 RazorLight 将 razor 模板(.cshtml 文件)呈现为字符串,然后在电子邮件中使用这些模板。
这在开发中运行良好,但在部署时(通过 WebDeploy 到 Azure App Services),所有 .cshtml 文件都被编译为 [Project].PrecompiledViews.dll,因此我无法访问原始 .cshtml...还有其他方法可以解决此问题,例如将模板存储在数据库或 blob 存储中,但将模板与我的项目一起发布很方便。让它们嵌入资源可能是一种选择,虽然感觉有点难看。
我尝试将它们复制到我的 wwwroot 文件夹中,并将它们标记为始终复制,并且我已经研究了几个小时。到目前为止没有运气。有没有办法让这项工作,也许在 .csproj 级别?
【问题讨论】:
-
你能不能用 .html 扩展名重命名它们(或者如果有人直接访问 URL,浏览器不会尝试呈现的更好的东西),这样构建引擎就不会尝试编译它们?我不知道 Razorlight 工具,但如果它们仍然是 Razor 模板,但只是具有不同的扩展名,它是否仍然能够处理它们?我希望它不会在乎。
-
@ADyson 这可能是一个选项,它只是破坏了 IDE,因为它基于该扩展识别 razor 语法。
-
您可以从编译中排除子文件夹:stackoverflow.com/questions/46978823/…
-
我突然想到 IDE 可以配置为在其他文件扩展名上提供智能感知等
-
@ADyson 嗯,这是真的,我可能会制作它 .razor 之类的。有点笨拙,但值得一试!
标签: asp.net asp.net-mvc razor asp.net-core-2.0 webdeploy