問題タブ [compojure]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
clojure - リストから Compojure ルートを作成する
私は最近 Compojure で遊んでいて、小さな基本的な webapp を手に入れました。私の HTML テンプレートには Enlive を使用しており、すべての単純な静的ページを保持する名前空間があります。これらのページの defroute 呼び出しは次のようになります。
私は実際にはそれよりもいくつか持っていますが、それは私が何をしているかのアイデアを与えるはずです.
さて、それは本当に私の側の繰り返しの束だと思ったので、次のことを試してみようと思いました:
もちろん、マップは関数の本体 (?) ではなく遅延シーケンスを返すため、これは機能しません。このアイデアを機能させるために私が何をする必要があるかを誰かが知っていますか?
それとも、同じことを繰り返すのを減らすために、まったく別のアプローチを使用する必要がありますか?
google-app-engine - Google App Engine でのサンドバーまたはリング セッションの簡単な例
セッションとフラッシュを Google App Engine で動作させる方法を考え出そうとしています。Ring または Sandbar のいずれかを使用して、誰かが明確な例を提供できますか? 私はサンドバーが機能していると思いますが、具体的にはそれを教えてくれませんVar sandbar.stateful-session/sandbar-flash is unbound
.ハンドラーをダンプする:flash
と:session
、それがサンドバーセッションなのかリングセッションなのかわかりません. 完全を期すために、appengine-magic、ring、hiccup、sandbar の最新バージョンを使用していることに言及します。非互換性や問題はないようです。
したがって、できれば を使用した明確な例ですflash-put!, flash-get, session-put! and session-get
。
clojure - Compojure POST リクエストにフォーム パラメータがありません
次の Compojure の例では、フォーム パラメータの取得に問題があります。
フォームを送信すると、出力は常に
タイトル パラメータが params マップにない理由がわかりません。
Compojure 0.6.2 を使用しています。
html - compojure.html はどこにありますか?
Compojure の実験を始めたばかりで、いくつかの compojure の例で見つけた構文を使用して HTML 出力を作成したいと考えています。
しかし、私は compojure 0.6.2 を使用していますが、この構文は compojure コアに含まれていないようです。
どうすればプロジェクトに含めることができますか?
http - Compojure で Modified http ヘッダーを生成するにはどうすればよいですか?
Compojure Web サーバーからページをフェッチするクライアントのパフォーマンスを改善しようとしています。を使用して一連の静的ファイル (JS、CSS) を(compojure.route/resources "/")
提供します。これは、ファイル システム上のファイルを検索し、それらを URL に変換してから、Ring にストリームとして提供します。ストリームに変換することで、mod 時間などのすべてのファイル メタデータが失われるようです。
static-resource ハンドラーをラップしてExpires
orCache-Control: max-age
ヘッダーを追加することはできますが、それではクライアントがリクエストをまったく送信できなくなります。便利ですが、これらのファイルはときどき変更されます (リリースを出すとき)。
理想的には、クライアントがキャッシュされた独自のバージョンをたとえば 1 時間信頼し、If-Modified-Since
その時間が経過した後にヘッダーを使用してリクエストを行うようにしたいと考えています。その後、戻るだけ304 Not Modified
で、クライアントは数百キロの JavaScript のダウンロードを回避できます。
応答を提供するときにヘッダーを設定できるように見えます。Last-Modified
これにより、クライアントは後続の要求をIf-Modified-Since
ヘッダーで修飾します。compojure.route/resources
追加するためにほとんどのコードを書き直さなければならないことを除けば、素晴らしいことですLast-Modified
- 難しいことではありませんが、退屈です - そして、If-Modified-Since
ヘッダーを認識して応答するためのコードをさらに発明します。記念碑的な仕事ではありませんが、単純なものでもありません。
これはすでにどこかに存在しますか?私はそれを見つけることができませんでしたが、それは十分に一般的で、十分に大きなタスクであるように思えます。
java - 「アーサーが制限されたクラスを見つけるのを手伝ってください」または「どうすればGoogleAppEngineを幸せにすることができますか」
ここのどこかで私はjava.rmi.server.UID
GAEを動揺させているものを使用しています。:骨への依存関係だけを取得した後、私は行き詰まっています。
私はそれを突堤にロードすることができ、それをdev-appserverにロードした後、私はこれを取得します:
ps:これが役立つ場合の私のproject.cljです:
clojure - 奇妙なleinuberwarの動作
テストWebアプリケーションを実行lein uberwar
していますが、次の奇妙なエラーが発生します。
servlet.cljには次のものが含まれています。
test.routesファイルには次のものが含まれています。
奇妙なことに、行を置き換えると
と:
そして電話
servlet.cljでは、WARは正常にコンパイルされ、tomcatで問題なく動作しています。コードに見落としているバグはありますか?なぜroutes/...だけでなく、test.routes / ...を呼び出す必要があるのですか?
frameworks - デザイナー/フロントエンド開発者向けのClojureWebフレームワーク
私が見ている人気のあるClojureWebフレームワークはすべて、hiccupを使用してHTMLを生成します。テンプレートから構文を解析する他のフレームワークと比較して、フロントエンドの設計担当者にしゃっくりを調整させるのは難しいと思います。
フロントエンド開発者がLISPを学ぶ必要のないclojureWebフレームワークはありますか?
clojure - 外部ホストから jetty サーバー (ring.adapter.jetty) にアクセスできるようにする方法
次の呼び出しを使用して Web サーバーを実行しようとしています
(run-jetty #'handler {:ホスト "ホスト名" :ポート 8080})
これにより、同じホストからアクセスできるサーバーが起動しますが、外部からはアクセスできません。私は EC2 インスタンスでこれを行っており、そのマシンの内部 IP を「ホスト名」として使用しています。ポート 8080 は外部アクセス用に開いています。また、ホスト名として「0.0.0.0」を使用してみましたが、同じ動作になりました。
少し古いバージョンの ring-jetty-adapter (0.2.5) を使用していますが、それを変更することはできません。
どんな助けでも大歓迎です!
google-app-engine - appengine-magic 0.4.3 /Compojure0.6.4でPOSTパラメーターとGEThttpパラメーターの両方を取得する際の問題
最新のappengine-magic/compojureバージョンでPOSTおよびGETパラメーターをキャプチャする際に深刻な問題が発生しています。リクエストオブジェクトに適切なものが含まれている場合でも、パラメータは常に空白として表示されます。
ラッパーを手動で配置する必要があるCompojureプロトコルの変更について、インターウェブの周りでいくつかのことを見てきました。私はこれを試しましたが(ハンドラー/ apiラッパーを使用してGAEを壊すハンドラー/サイトラッパーのものを回避します)、それでも機能しません。
私はここで何が間違っているのですか?
私のproject.cljファイル:
私のcore.cljファイル: