我有一个我编写的 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 不包括在内。这看起来相当简单,所以我想我错过了一些东西,但是什么?为什么脚本没有在查看模式下加载?
DNN 版本为 6.2.4
编辑:我昨晚和今天早上一直在与这个作斗争。该脚本每次在编辑模式下加载,但在查看模式或注销时,它可能加载一次或两次,然后加载失败。有趣的是,我在模块的视图控件中添加了服务器端时间戳,并禁用了所有缓存(浏览器、DNN 主机设置),并且文件仍在缓存中。这发生在我的本地机器(IIS Express)和我们的登台服务器(IIS 7.5)上。
如果我反弹 Web 服务器并清除 Portals/0/Cache 目录,脚本偶尔会在第一次加载,但之后会失败。我终于求助于客户端检查,它在必要时动态加载脚本,但这绕过了客户端资源管理 API 的优点,所以我真的很想找出一个合适的解决方案。