Elixir phoenix 注销 link 不起作用
Elixir phoenix Logout link does not work
我的应用程序中有以下注销 link,但是当我单击它时,它没有执行任何操作。
<li class="nav-item">
<%= link "Logout", to: session_path(@conn, :delete), method: :delete, class: "nav-link" %>
</li>
上面代码生成的html元素是
<li class="nav-item">
<form action="/logout" class="link" method="post">
<input name="_method" type="hidden" value="delete">
<input name="_csrf_token" type="hidden" value="GiA4JANYN10+JQhfUgIEARxZCRIEAAAUijC25v5Kj8j7KI6qrOtv==">
<a data-submit="parent" href="#">Logout</a>
</form>
</li>
有没有人看到这里有什么明显的错误,点击注销 link 不会执行任何操作?
早午餐-config.js
javascripts: {
joinTo: {
"js/app.js": /^(web\/static\/js)/,
"js/jquery-ujs.js.js": ["web/static/vendor/js/jquery-ujs.js.js"],
"js/jquery.js": ["web/static/vendor/js/jquery.js"]
},
...
我相信负责处理此类情况的代码在 phoenix_html
包的 js 文件中,因此您需要确保已将此包添加到 mix
并具有以下行在您的 app.js 文件中未注释:
import "deps/phoenix_html/web/static/js/phoenix_html"
一种可能的解决方法是执行 GET 请求而不是 DELETE 请求:
您的 html.eex 代码:
<li class="nav-item">
<%= link "Logout", to: session_path(@conn, :delete), class: "nav-link" %>
</li>
一个例子router.ex:
resources "/sessions", SessionController, only: [:new, :create]
get "/sessions", SessionController, :delete
在我的例子中,它是由于缺少 npm 依赖项而发生的。
在 phoenix.server 日志中,我注意到 app.js 由于缺少 babel-preset-2015 和 babel-preset-2016 而未构建。
npm i --save-dev babel-preset-2015 babel-preset-2016
我的应用程序中有以下注销 link,但是当我单击它时,它没有执行任何操作。
<li class="nav-item">
<%= link "Logout", to: session_path(@conn, :delete), method: :delete, class: "nav-link" %>
</li>
上面代码生成的html元素是
<li class="nav-item">
<form action="/logout" class="link" method="post">
<input name="_method" type="hidden" value="delete">
<input name="_csrf_token" type="hidden" value="GiA4JANYN10+JQhfUgIEARxZCRIEAAAUijC25v5Kj8j7KI6qrOtv==">
<a data-submit="parent" href="#">Logout</a>
</form>
</li>
有没有人看到这里有什么明显的错误,点击注销 link 不会执行任何操作?
早午餐-config.js
javascripts: {
joinTo: {
"js/app.js": /^(web\/static\/js)/,
"js/jquery-ujs.js.js": ["web/static/vendor/js/jquery-ujs.js.js"],
"js/jquery.js": ["web/static/vendor/js/jquery.js"]
},
...
我相信负责处理此类情况的代码在 phoenix_html
包的 js 文件中,因此您需要确保已将此包添加到 mix
并具有以下行在您的 app.js 文件中未注释:
import "deps/phoenix_html/web/static/js/phoenix_html"
一种可能的解决方法是执行 GET 请求而不是 DELETE 请求:
您的 html.eex 代码:
<li class="nav-item">
<%= link "Logout", to: session_path(@conn, :delete), class: "nav-link" %>
</li>
一个例子router.ex:
resources "/sessions", SessionController, only: [:new, :create]
get "/sessions", SessionController, :delete
在我的例子中,它是由于缺少 npm 依赖项而发生的。
在 phoenix.server 日志中,我注意到 app.js 由于缺少 babel-preset-2015 和 babel-preset-2016 而未构建。
npm i --save-dev babel-preset-2015 babel-preset-2016