【问题标题】:DOJO not working under tomcat 5.x?DOJO 在 tomcat 5.x 下不工作?
【发布时间】:2012-04-01 07:25:32
【问题描述】:

我有一个使用 DOJO Datepicker 的 JSP。它在我安装了 Netbeans6.9/tomcat 6.x 的笔记本电脑上运行良好。但是,当我将它上传到我的托管服务时,DOJO Datepicker 没有显示,而页面的其余部分显示正常!

我的网络应用是使用 Java Struts2 开发的。

我比较了两种环境(本地和远程)的源代码。我注意到这对远程页面没有影响。它在本地页面的哪个位置转换为一些 DOJO 配置。

远程页面:

<head>
<title>Profile</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="MainLayout.css" rel="stylesheet" type="text/css">
</head>

本地页面:

<head>
   <title>Contract Profile</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link href="MainLayout.css" rel="stylesheet" type="text/css">
    <script language="JavaScript" type="text/javascript">
// Dojo configuration
djConfig = {
    isDebug: false,
    bindEncoding: "UTF-8"
      ,baseRelativePath: "/sm/struts/dojo/"
      ,baseScriptUri: "/sm/struts/dojo/"
     ,parseWidgets : false

};
</script>

<script language="JavaScript" type="text/javascript"
    src="/sm/struts/dojo/struts_dojo.js"></script>

<script language="JavaScript" type="text/javascript"
    src="/sm/struts/ajax/dojoRequire.js"></script>
<link rel="stylesheet" href="/sm/struts/xhtml/styles.css" type="text/css"/>

<script language="JavaScript" src="/sm/struts/utils.js" type="text/javascript"> </script>
<script language="JavaScript" src="/sm/struts/xhtml/validation.js" type="text/javascript"></script>
<script language="JavaScript" src="/sm/struts/css_xhtml/validation.js" type="text/javascript"></script>
</head> 

此外,FireBug 会在远程加载页面时给我对象 dojo 未定义消息。这些明显迹象表明它的行为有所不同。

但问题是我该怎么做呢? 非常感谢您的帮助,因为我真的很分散。

【问题讨论】:

  • 您的 HTML 片段令人困惑。本地的包含 SCRIPT 元素,远程的不包含。 TITLE 元素也不同。你确定远程版本是正确的吗?顺便提一句。始终通过 CTRL+U(查看源代码)检查 HTML 源代码,因为 Firebug 仅显示解析的内容(但您可能正在这样做)。
  • 感谢 Pavel,两个脚本中的混淆是问题的原因。

标签: struts2 dojo datepicker tomcat5.5


【解决方案1】:

“dojo 未定义”表示 dojo 未加载。

转到firebug中的网络选项卡并找到dojo.js的完整路径

http://mydomain.com/contextPath/static/dojo/dojo.js

这可能是红色的,这意味着 firefox 无法加载资源。

问题可能是以下之一:

  • dojo 文件位于不同的路径中。您的开发环境和生产环境之间的 contextPaths 可能不同,并且您已针对您的开发环境进行了硬编码。
  • 您构建 war 文件的构建脚本不包含 dojo javascript,并且在生产环境中完全缺失。

【讨论】:

  • 谢谢克雷格,我会这样做并回复。然而,我对这个问题感到非常沮丧,以至于我从我的页面中删除了 DOJO 控件并暂时继续使用 STRUTS2 文本字段。就这样我可以继续前进。在这上面浪费了太多时间。最重要的是,我的网络托管服务支持真的很糟糕!
猜你喜欢
  • 2015-10-19
  • 2013-04-05
  • 2014-07-05
  • 1970-01-01
  • 1970-01-01
  • 2011-09-05
  • 2021-11-12
相关资源
最近更新 更多