问题标签 [virtualpathprovider]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-mvc - 继承自 System.Web.Mvc.ViewStartPage 的虚拟视图
尝试通过 VirtualPathProvider 从文件中检索虚拟视图时遇到问题,此 stackoverflow thread对此进行了描述。
现在我的问题是为什么虚拟视图继承自 System.Web.Mvc.ViewStartPage,以及如何使其继承自 WebViewPage 以便我可以使用
ViewResult View(string viewName);
代替
PartialViewResult PartialView(string viewName);
就像描述的解决方法一样?
asp.net - 缓存通过 VirtualPathProvider 返回的静态资源
我正在使用VirtualPathProvider
当前将虚拟路径映射到解决方案外部目录的 。我建立这个主要是为了自我锻炼。这完全等同于在解决方案的目录中有一个软链接或 NTFS 硬链接。
无论如何,我设法使用我的自定义提供程序从该虚拟目录成功加载静态图像。
现在的问题是浏览器不会缓存图像。而且服务器甚至不会考虑返回缓存信息(如 ETag)。
这是我所做的:
GetFile(path).Open()
FileStream
通过返回File.Open()
- 我没有覆盖
GetCacheKey
和GetCacheDependencies
- 我确实覆盖
GetFileHash
了返回 Murmur 哈希(似乎是最快的,甚至比 CRC-32)并测试了它 - 调试时,
GetFileHash
从未在我的提供程序中调用
CTRL-F5
ing 仅返回以下标头(不引用缓存)
我目前正在 Visual Studio 的调试服务器和配备 Firebug 的 Firefox 中进行调试。
例如,这是我所期望的(http://i.stack.imgur.com/3mn3d.png)
问题很明显:如何让浏览器不重新加载这些静态资源?
bundle - 在虚拟路径提供程序下捆绑的解决方法
我发现在 ASP.NET MVC 4 下,如果它们的虚拟路径由VirtualPathProvider
. 我的意思是,如果目录“~/Static/”被映射到一个 VPP,你就不能Include("~/Static/Stylesheets/themes/dark-blue.css")
,因为它会简单地默默地失败。
从这里到这里,看起来这是运行时的默认行为,因为它基本上解析文件系统上的虚拟路径,而不是使用 ASP.NET 管道。而且,幸运的是,它将在下一个 MVC 中实现。
无论如何,由于这看起来是一个常见问题,并且由于我要将静态资源存储在项目之外(最终在 Azure 的 CDN 上,但我仍然需要开发和调试),有没有人找到让 ASP.NET Web 的解决方法在他们的虚拟路径中优化搜索资源?
c# - 如何为 EpiServer 页面文件添加有效的 aws S3 虚拟路径提供程序?
我正在运行一个 EpiServer 项目,我想在其中使用 Amazon S3、托管图像等...... pagefiles 目录中将存在很多图像。
我已经下载了 NuGet for Visual Studio 并添加了 AWSSDK 和 Geta.AmazonS3 库,以便能够将 Amazon S3 添加为虚拟路径提供程序。
我在 EpiServer.config 中添加了这一行:
它适用于全局文件。
但是当我尝试为页面文件添加相同的内容时,我收到消息:
“配置为处理页面文件的 VirtualPathProvider 必须返回实现 IPageDirectory 的目录”。
任何人都知道什么可能是错的,或者需要做什么?
通过查看该库,它看起来像是实现了 IPageDirectory(或至少是统一文件系统)。 Geta.AmazonS3 库
c# - 如何从数据库中加载一些视图,从 MVC4 中的文件中加载其他视图
我有一个从文件加载 _Layout 和正常页面视图的 Web 应用程序,我现在尝试使用 VirtualPathProvider 和覆盖的 VirtualFile 从数据库加载部分视图:
我还在 global.asax 中注册了 Provider:
但是,当我注册 RavenDbPathProvider 时,它似乎被用于所有视图查找。
是否可以注册多个 VirtualPathProviders,以便如果在磁盘上找不到视图,则搜索将在数据库中继续?
如果没有,有没有人成功地做过类似的事情?
iis - 如何伪造 IIS 中的目录列表?VirtualPathProvider 适用于文件,但
我们使用 AppFabric 1.1 和 IIS 8.0 来运行我们基于 xamlx 的工作流。为了使静态 xamlx 文件消失,我们使用 Ron Jacobs 完美的示例代码将它们存储在数据库中,并通过VirtualPathProvider
.
到目前为止一切顺利,如果有人点击了正确的 uri,则会提供 xamlx 文件。
但是现在 AppFabric 仪表板没有机会收集和登记 xamlx 文件作为服务,因为它们不再对 AppFabric 可见。
目标必须是伪造一个目录列表并从 db 读取所有 xamlx 工作流名称。
我试图通过VirtualPathProvider
以这种方式覆盖基于目录的方法来扩展
但是这些方法并没有像我猜测的那样被调用。这是因为 Uri 没有扩展名并且 asp.net 没有被调用。
感谢任何帮助以使这个虚假目录列表发生!
谢谢
c# - Azure 中的 VirtualPathProvider 在发布时不起作用
我创建了一个 VirtualPathProvider 以允许移动基于 Request.Host 的自定义文件夹中的所有资源,以使用一个 Web 应用程序管理多个域。
在我的本地机器上,MVC 应用程序工作,当我发布到 Azure 时,我收到一个不清楚的错误(HTTP 503),我不明白我要检查什么才能获得更多信息。
这里提供者的实现:
virtualpathprovider - mvc4 razor 中是否有任何 VirtualPathProvider 工作示例?
我已经阅读了数十个相关线程,并从示例中创建了我非常简单的虚拟提供程序。
但它不渲染虚拟文件流。只显示计划文本。
这是输出。
有关于此的相关线程,但他们并没有说他们是如何解决它或解决方案不起作用的。我找不到我做错了什么。
- VirtualPathProvider 不解析剃刀标记
- MVC3 自定义 VirtualPathProvider 不呈现 Razor
- 从数据库而不是文件中提取视图
- 使用区域时如何在 MVC3 中指定到共享视图的路由
- ASP.NET MVC 从数据库加载 Razor 视图
- 如何从类库项目中加载视图?
还有更多...
怎么了 ?
这是我的测试代码。(Global.asax,这就是我改变的全部。)
asp.net-mvc-4 - 如何在 IIS6 中使用 EmbeddedResourceVirtualPathPovider
在使用 VS2010 使用 Mvc.JQuery.Datatables Nuget 开发 ASP.NET MVC4 Web 应用程序时,我发现引用的 EmbeddedResourceVirtualPathProvider NuGet 在我的开发盒上运行良好,但在我的生产盒上却惨遭失败。
生产盒是 Windows 2003,安装了 IIS6 和 .NET 4.0。
我在 SO 和谷歌上搜索了很多东西,但是在实施了建议的解决方法之后,它仍然失败:
这就是我所做的。
- 按照https://stackoverflow.com/a/5178993
AppInitialize
的建议实施 - 按照http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx的建议为 ASP.NET 实施通配符映射
- 按照https://stackoverflow.com/a/3144841的建议为静态文件实施 IgnoreRoute
但它仍然不能提供所有文件。我得到了嵌入的部分视图,但没有嵌入的 css、js 和 jpg 文件。
我的 web.config 有一个 StaticFileHandler 的条目,如下所示:
我似乎遗漏了一些关键的东西。有什么建议么?
c# - 从虚拟文件中的字符串实现 virtualpathprovide 和显示日期时间
我对 MVC 非常陌生,并试图刺穿虚拟路径提供程序,并在屏幕上显示日期时间。该路径工作正常并被应用程序识别,但它不会显示detetime,而是只显示字符串“时间是:@DateTime.Now”。但如果我直接返回虚拟文件,它将正确显示时间。
以下代码检索虚拟文件:
正如我所提到的,如果我注释掉上面的一些代码,你可以看到它会正确显示时间。
虚拟文件代码:
任何建议将不胜感激。