Phoenix - 找不到 GET /static/js/some.js 的路由
Posted
技术标签:
【中文标题】Phoenix - 找不到 GET /static/js/some.js 的路由【英文标题】:Phoenix - no route found for GET /static/js/some.js 【发布时间】:2016-06-24 02:59:15 【问题描述】:我正在将我的 Rails 应用程序迁移到 phoenix 框架。
我在web/static/js
和web/static/css
目录中添加了一些javascript(比如some.js
)和css 文件。
首页中的<%= static_path(@conn, "/js/some.js") %>
page/index.html.eex
不起作用。它引发了异常(开发环境):
Phoenix.Router.NoRouteError at GET /static/js/some.js
no route found for GET /static/js/some.js (VisualTrader.Router)
如果我将some.js
复制到priv/static/js
目录,它会起作用。那么我错过了什么?我认为资产管道的工作方式类似于 rails 中的管道,它会自动预编译资源。
下面列出我的 phoenix 框架环境:
灵药版本
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",
...
【问题讨论】:
您能否验证priv/static/js/some.js
文件是否存在? JS 是在 web 目录中开发的,但从 priv 目录中提供。我从来没有使用过内置的早午餐,但 AFAIK 它应该会自动编译/复制到 priv。
@CodyPoll 我触摸了web/static/js/some.js
,记录是10 Mar 02:10:19 - info: compiled some.js and 7 cached files into app.js in 1 sec
。如何保持 javascript 文件分开?
【参考方案1】:
如果您想包含要预编译的 Javascript 文件,您需要添加以下代码行。
在web/static/js
目录中添加您的 Javascript 文件。
在web/static/js/app.js
中包含您的文件
import "./some-file"
【讨论】:
我想在一个特定的视图模板中包含一个特定的js
。所以整个预编译的事情变得无用和不必要。以上是关于Phoenix - 找不到 GET /static/js/some.js 的路由的主要内容,如果未能解决你的问题,请参考以下文章
电脑有些老,BIOS是phoenix-award的,电脑启动不了了,亟需解决