2016-03-09 6 views
6

के लिए कोई रास्ता नहीं मिला है, मैं अपने रेल एप्लिकेशन को फीनिक्स फ्रेमवर्क में माइग्रेट कर रहा हूं।फीनिक्स - GET /static/js/some.js

मैंने कुछ जावास्क्रिप्ट (some.js कहें) और सीएसएस फाइलों को web/static/js और web/static/css dir में जोड़ा।

<%= static_path(@conn, "/js/some.js") %> सामने वाले पृष्ठ में page/index.html.eex काम नहीं किया। यह अपवाद (देव env) उठाया:

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

अगर मैं priv/static/js निर्देशिका के लिए some.js की नकल की है, यह काम किया। तो मुझे क्या याद आया? मैंने सोचा कि परिसंपत्ति पाइपलाइन रेल की तरह काम करती है, जो ऑटो प्रीकंपिल्ड संसाधन हैं।

सूची के नीचे मेरी फोनिक्स ढांचे वातावरण:

  • अमृत संस्करण

    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' फ़ाइल मौजूद है शामिल हैं? जेएस वेब निर्देशिका में विकसित किया गया है, लेकिन निजी निर्देशिका से परोसा जाता है। मैंने कभी भी ब्रॉड-इन ब्रंच का उपयोग नहीं किया है, लेकिन AFAIK को इसे स्वचालित रूप से संकलित/प्रतिलिपि बनाना चाहिए। –

+0

@ कोडीपॉल मैंने 'वेब/स्थिर/जेएस/some.js' को स्पर्श किया और लॉगिंग ' 10 मार्च 02:10:19 - जानकारी: कुछ .js और 7 कैश की गई फ़ाइलों को app.js में 1 सेकंड में संकलित किया गया। मैं जावास्क्रिप्ट फ़ाइलों को अलग कैसे रख सकता हूं? –

उत्तर

1

आप जावास्क्रिप्ट होने के लिए फ़ाइल शामिल करना चाहते हैं precompiled वाई कोड की निम्नलिखित पंक्ति जोड़ने की जरूरत है।

web/static/js निर्देशिका में अपनी जावास्क्रिप्ट फ़ाइल जोड़ें।

web/static/js/app.js में अपनी फ़ाइल

import "./some-file" 
+0

मैं किसी विशेष दृश्य टेम्पलेट के अंदर एक विशेष 'जेएस' शामिल करना चाहता हूं। तो पूरी पूर्व संकलन चीज बेकार और बेकार हो जाती है। –