我有一个我编写的DNN模块,包括jquery fancybox插件的css / js,如下所示:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="View.ascx.cs" Inherits="DotNetNuke.Modules.WebPortfolio.View" %>
<%@ Register TagPrefix="dnn" Namespace="DotNetNuke.Web.Client.ClientResourceManagement" Assembly="DotNetNuke.Web.Client" %>
<dnn:DnnCssInclude runat="server" priority="10" FilePath="DesktopModules/WebPortfolio/Scripts/Fancybox/jquery.fancybox.css" />
<dnn:DnnJsInclude runat="server" priority="10" FilePath="DesktopModules/WebPortfolio/Scripts/Fancybox/jquery.fancybox.pack.js" />
当我处于编辑模式时,一切都很好,花花公子,但当我切换到视图模式时,不包括css和js。这看起来相当简单,所以我想我错过了什么,但是什么?为什么在View模式下加载脚本?
DNN版本为6.2.4
编辑:昨晚和今天早上我一直在和这个人打架。该脚本每次都在“编辑”模式下加载,但在“查看”模式下或注销时,它可能会加载一次或两次,然后无法加载。有趣的是,我在模块的视图控件中添加了服务器端时间戳,并禁用了所有缓存(浏览器,DNN主机设置),并且文件仍在缓存中。这在我的本地计算机(IIS Express)和登台服务器(IIS 7.5)上都会发生。
如果我退回Web服务器并清除Portals / 0 / Cache目录,脚本偶尔会第一次加载,但之后会失败。我最终使用了客户端检查,如果需要,它会动态加载脚本,但这会绕过客户端资源管理API的优点,所以我真的想找到一个合适的解决方案。
答案 0 :(得分:0)
这听起来像是我刚刚记录的问题(DNN-20363),其中缓存模块时不包括向客户端资源管理框架注册的资源。当模块有模块缓存时,我遇到了这个问题。您的模块是否在其模块定义中设置了默认缓存时间?您可以尝试将其关闭,然后添加新实例(以确保缓存设置本身不会被缓存)。