dotnetnuke - 是否可以将虚拟路径提供程序与 DotNetNuke 一起使用?

标签 dotnetnuke webresource.axd virtualpathprovider dotnetnuke-8

我们有一个使用 Angular 作为客户端框架的 DNN 模块。 我希望能够将所有资源(例如 html 、 js 、css 、图像和字体)嵌入到我的模块中。(实际上我们的模块有多个 dll,并且每个 dll 都有自己的资源,所以我不需要每次我想制作一个包时,不想将所有这些资源复制到主模块文件夹中)

到目前为止,我已经尝试过 WebResource.axd,它在某种程度上是成功的( Here 就是我所做的),但后来我意识到,嵌入 html、图像和其他东西而不是 js 和 css 是不可能的(或者不是?)

然后我决定尝试使用 VirtualPathProvider,我使用了 this open source project实现了一个EmbeddedResourcesVirtualProvider。

我已使用 DNN 的 IRouteMapper 接口(interface)注册了此提供程序。现在我开始测试我的项目,我的所有资源都收到 404 错误。我尝试调试该项目,并在 VirtualProvider 的 FileExists 、DirectoryExists 和 GetFile 方法上放置一些断点,但 VirtaulProvider 请求的唯一虚拟路径是“~/Default.aspx”,除此之外没有其他

我想问是否可以将 VirtualParhProvider 与 DNN 一起使用?

我们正在使用 DNN 8。

最佳答案

我认为你把事情搞得太复杂了。如果您需要一个虚拟提供程序来让您的模块工作,那么您就做错了(在我看来)。 模块应该是一个独立的包,可以部署在任何 DNN 安装上,除了安装模块之外无需执行任何操作。

通常当您 buy或下载free module ,它位于一个 zip 文件中,其中包含该 zip 中包含的所有必需文件。这可以是任何类型的文件(.dll、.js、css、.ascx、.aspx 等),只要在 .dnn 安装文件中定义即可。

然后您可以链接到模块的 ascx 中的文件。

<script type="text/javascript" src="/DesktopModules/YourModulePath/js/file.js"></script>
or
<img src="/DesktopModules/YourModulePath/images/image.jpg">

关于dotnetnuke - 是否可以将虚拟路径提供程序与 DotNetNuke 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42427460/

相关文章:

dotnetnuke - DNN 中 ModuleID 和 ModuleUniqueID 的区别

asp.net - WebResource.axd - 无效的 ViewState

asp.net - ASP .NET MVC VirtualPathProvider

.net - 使用自定义 VirtualPathProvider 加载继承自定义 WebViewPage 的嵌入式 View

c# - 如何在 DotNetNuke 中获取门户的当前登录 URL?

jquery - 在哪里存储 DotNetNuke HTML 模块中使用的 CSS 和 jQuery?

asp.net-mvc - 向后设置本地时钟会导致 WebResource.axd 错误

WebResource.axd 和 ScriptResource.axd 加载时间超过 1 分钟

asp.net - 缓存通过 VirtualPathProvider 返回的静态资源

dotnetnuke - 在 DNN 7 中初始化 NotificationController