如何在 Windows Azure 上使用 SquishIt
我想使用内部的 SquishIt nuget 包和在 Windows Azure 上运行的 MVC3 应用程序。我使用 SquishIt 进行 CSS 和 JS 组合和缩小。
在我的 Views/Shares/_Layout.cshtml 中,我有以下几行:
@MvcHtmlString.Create(
Bundle
.Css()
.Add("~/Content/templates/style.css")
.Add("~/Content/market.css")
.Add("~/Content/jquery-ui-theme/jquery-ui-1.8.17.custom.css")
.ForceRelease()
.Render("/Cache/combined-css_#.css"))
这导致
"System.IO.IOException: Unable to open file"
我在这里找到了一些东西 http://www.bondigeek.com/blog/2011/03/22/all-is-quiet-not-on-the-azure-front/ 但这实际上不是我想。一般来说,SquishIt 应该可以在 Azure VM 的磁盘上写入,但可能是目录错误或安全权限不足。有什么想法吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 Azure VM 中,您无法直接写入文件系统。您必须配置 SquishIt 以将捆绑包保留在内存中。
有关更多详细信息,请参阅此页面: 以编程方式使用 SquishIt,无需文件系统
In Azure VM, you cannot write to file system directly. You have to configure SquishIt to keep bundles in memory.
See this page for more details: Using SquishIt programmatically without the file system
您可以在 azure 上使用它,但您需要在 Web 角色中添加一个启动脚本,该脚本将为您写入的目录设置适当的权限:
这些是步骤:
icacls %~dp0..\scripts /grant "NETWORK SERVICE":(OI)(CI)RX
<启动> <任务 commandLine="App_Startup\enableWritePermissions.cmd"executionContext="elevated"taskType="background" />
就这样,您在 \scripts 目录中拥有了写入权限,您可以自由使用最小化。
You can use It on azure but you need to add a Start-up Script in the web role that will set proper Permission on the Directory that you write to:
Those are the Steps:
icacls %~dp0..\scripts /grant "NETWORK SERVICE":(OI)(CI)RX
<Startup> <Task commandLine="App_Startup\enableWritePermissions.cmd" executionContext="elevated" taskType="background" />
</Startup>
That's all , you have a Write permission in the \scripts directory and you can use the Minimization freely.