2016-03-09 21 views
6

Sto migrando la mia applicazione di binari al framework phoenix.Phoenix: nessuna route trovata per GET /static/js/some.js

Ho aggiunto alcuni file javascript (ad esempio some.js) e css a web/static/js e web/static/css dir.

<%= static_path(@conn, "/js/some.js") %> nella prima pagina page/index.html.eex non ha funzionato. Essa ha sollevato l'eccezione (dev ENV):

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

Se ho copiato some.js-priv/static/js dir, ha funzionato. Quindi cosa mi sono perso? Pensavo che la pipeline delle risorse funzionasse come quella delle rotaie, che auto-precompilava le risorse.

lista sotto delle mie phoenix ambienti quadro:

  • Elixir versione

    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) 
    
  • versione Phoenix

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

Potete verificare che il file delle 'priv// static js/some.js' esiste? JS è sviluppato nella directory web, ma viene fornito dalla directory privata. Non ho mai usato il brunch incorporato, ma AFAIK dovrebbe compilare/copiarlo automaticamente su priv. –

+0

@CodyPoll Ho toccato 'web/static/js/some.js' e il logging è ' 10 Mar 02:10:19 - info: compilato some.js e 7 file in cache in app.js in 1 sec'. Come posso mantenere separati i file javascript? –

risposta

1

Se si desidera includere il file JavaScript di essere precompilato y Dovevo aggiungere la seguente riga di codice.

Aggiungi il tuo file di Javascript nella directory web/static/js.

In web/static/js/app.js includere il file

import "./some-file" 
+0

Voglio includere un particolare 'js' all'interno di un particolare modello di vista. Quindi l'intera domanda di compilazione diventa inutile e inutile. –