2016-03-09 16 views
6

私のレールアプリケーションをphoenixフレームワークに移行しています。フェニックス - GET /static/js/some.jsのルートが見つかりません

私はいくつかのjavascript(たとえばsome.js)とcssファイルをweb/static/jsweb/static/css dirに追加しました。

<%= static_path(@conn, "/js/some.js") %>フロントページpage/index.html.eexは機能しませんでした。それは例外(DEVのENV)を提起:私はpriv/static/jsディレクトリにsome.jsをコピーした場合

Phoenix.Router.NoRouteError at GET /static/js/some.js 
no route found for GET /static/js/some.js (VisualTrader.Router) 

、それが働きました。だから私は逃した?アセットのパイプラインは、自動的にリソースをプリコンパイルしたレールのように機能すると思っていました。リストの下

私のフェニックスのフレームワーク環境:

  • エリクサーバージョン

    elixir -v 
    
    Erlang/OTP 18 [erts-7.1] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false] 
    
    Elixir 1.3.0-dev (187f4f8) 
    
  • フェニックスバージョン

    defp deps do 
        [{:phoenix, "~> 1.1.2"}, 
        ... 
    
+0

あなたは 'PRIV /静的/のJS/some.js'ファイルが存在することを確認することができますが含まれていますか? JSはWebディレクトリで開発されますが、privディレクトリから提供されます。私は内蔵のブランチを使ったことは一度もありませんが、AFAIKは自動的にそれをprivにコンパイル/コピーする必要があります。 –

+0

@CodyPoll私は 'web/static/js/some.js'に触れ、ログは ' 10 Mar 02:10:19 - info:1秒でapp.jsにsome.jsと7つのキャッシュファイルをコンパイルしました。 どうすればjavascriptファイルを分離した状態に保つことができますか? –

答えて

1

あなたがするJavaScriptファイルを含める場合プリコンパイルされたy次のコード行を追加する必要があります。

web/static/jsディレクトリにJavascriptファイルを追加します。 web/static/js/app.js

は、ファイル

import "./some-file" 
+0

特定のビューテンプレートの中に特定の 'js 'を含めたいと思います。したがって、事前コンパイルの全体が役に立たなくなり、不必要になります。 –

関連する問題