2013-07-06 10 views
5

ACE Editorをデスクトップアプリケーションにバンドルし、WebView内でレンダリングします。エースはfile:///プロトコルから実行されています。モードファイルをace.jsから別にホストする方法はありますか?たとえばace.jsはアプリケーションバンドル/Application/MyApp.app/...の中にありますが、モードファイルは~/Library/Application Support/MyApp/ace/modesです。 Ace Editorとは別にホストモードのファイル

は、私がテストプロジェクトで開始し、私はそのモジュール ace/mode/javascript/Users/user/ace-build/javascriptからロードされます期待していたが、それは ace/mode-javascript.jsからロードする次のコード

<script type="text/javascript"> 
    var require = { 
     baseUrl: window.location.protocol + "//" + window.location.host 
       + window.location.pathname.split("/").slice(0, -1).join("/"), 
     paths: { 
      "ace/mode": "/Users/user/ace-build", 
     } 
    }; 
</script> 
<script type="text/javascript" src="require.js"></script> 
<script type="text/javascript" src="ace/ace.js"></script> 
<script type="text/javascript"> 
    require(["ace/ace"], function(ace){ 
     var editor = ace.edit("editor-container"); 
     editor.getSession().setUseWorker(false); 
     editor.setTheme("ace/theme/xcode"); 
     editor.getSession().setMode("ace/mode/javascript"); 
    }); 
</script> 

を持ちます。別の場所からモードをロードする方法は?

答えて

2

ext-*と他のファイルが同じフォルダ内にある場合は、.set("basePath", ..)代わり

+0

おかげで多くのことを行うことができます

require("ace/config").set("modePath", require.toUrl("ace/mode")) 

使用。できます。私の場合、唯一のことはトップレベルのコールであるため、非同期バージョンを使用する必要があります。最終的なコードはhttp://pastebin.com/eKw2dC1iです –

関連する問題