문제

Grails를 사용하여 웹 응용 프로그램을 작성하고 있습니다. 나는 dojo를 사용하기로 결정했고 main.gsp에서 시작하기 위해 Dojo Fisheye 메뉴를 추가하여 모든 응용 프로그램 페이지에서 사용할 수있게되었습니다. (홈) index.gsp 페이지에서는 잘 작동하지만 다른 사람을 선택하면 Fisheye 메뉴가 disapears입니다. 내가 집으로 돌아 가면 거기에 있습니다. 나는 내 설정을 수정했고 모든 것이 나에게 괜찮아 보인다. 나는 화려하고 단순한 것을 사용하지 않습니다. 나는 무언가를 놓치고 있지만 그것을 알아낼 수는 없습니다.

다음은 명확성을 위해 단순화 된 내 main.gsp의 코드입니다.

<html>
<head>

    ...

    <g:layoutHead />

    <!-- use dojo library ... this has not effect at all -->
    <g:javascript library="dojotk"/>    

    <!-- Load Dojo -->
    <script type="text/javascript" src="js/dojotk/dojo/dojo.js"
    djConfig="parseOnLoad:true, isDebug:false"></script>

    <!-- need fisheye -->
    <g:javascript type="text/javascript">
        dojo.require("dojox.widget.FisheyeList");
    </g:javascript>

    <!-- required css for dojo fisheye -->
    <style type="text/css">@import "js/dojotk/dojox/widget/FisheyeList/FisheyeList.css";</style>    

</head>
<body >
       ...
     <!-- fisheye bar -->
     <div id="fisheyebar"><g:render template="/common/fisheyebar"/></div>

    <g:layoutBody /> 
</body>

그리고 여기 _fisheyebar.gsp가 있습니다

<g:javascript>
  function load_app(target){
   window.location.href=target
 }
</g:javascript>
    <center >
        <div class="outerbar">
            <div dojoType="dojox.widget.FisheyeList"
                    itemWidth="50" itemHeight="50"
                    itemMaxWidth="200" itemMaxHeight="200"
                    orientation="horizontal"
                    effectUnits="2"
                    itemPadding="10"
                    attachEdge="top"
                    labelEdge="bottom"

                    >
    <div dojoType="dojox.widget.FisheyeListItem" 
            onClick= "load_app('${createLinkTo(dir:'/something')}');"
             iconsrc="images/icon_something.png" caption="Web Browser">
    </div>
       .....
    </div>
</div> <!-- outbar -->
</center>

index.gsp를 포함한 모든 페이지에는 다음이 있습니다.

   <head>
<title>some titel</title>
<meta name="layout" content="main" />
</head>

템플릿 (_fisheyebar)의 사용이 원인이 아니며 코드를 직접 메인에 넣고 같은 효과를 냈습니다. 그래서 내가 무엇을 놓치고 있습니까?

도움이 되었습니까?

해결책

Dojo의 위치에 대한 상대 URL에 있습니다. 루트와 관련이 있으므로 인덱스가 다른 페이지가 아닌 인덱스가 작동하는 이유입니다.

절대 URL을 사용하면 문제가 해결됩니다.

다른 팁

dojo 선언과 가져 오기를 main.gsp에 넣는 대신 레이아웃 템플릿 페이지로 이동하려고 했습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top