【发布时间】:2019-02-04 10:21:52
【问题描述】:
当尝试按照本教程进行操作时:Chat web-app using Phoenix and Vue.js — Part 1,我卡在了应该在浏览器控制台中看到此消息的位置
成功加入 Object {ob: Observer}
我已遵循每一条指示:
- 是时候创建 Phoenix 项目了:成功
- 让我们集成 Vue.js:成功
- 是时候初始化 Vue 应用并创建我们的第一个组件了:SUCCESS
- Vue.js 和 Phoenix 坐在一棵树上.. 是时候把这两个连接起来了!:每当我运行这个命令时,我都会得到
app.js:61 未捕获的错误:找不到模块 'web/static/js/app' 来自 '/' 在需要 (app.js:61) 在 browser.js:190
我已经尝试了我在互联网上找到的所有东西,但仍然无法做到
以下是我在项目中的代码和文件位置:
web/static/app.js
import "phoenix_html"
import socket from "/js/socket"
web/static/js/socket.js
import {Socket} from "phoenix"
import Vue from 'vue'
import MyApp from "../components/my-app.vue"
let socket = new Socket("/socket", {params: {token: window.userToken}})
socket.connect()
// Create the main component
Vue.component('my-app', MyApp)
// And create the top-level view model:
new Vue({
el: '#app',
render(createElement) {
return createElement(MyApp, {})
}
});
web/channels/room_channel.ex
defmodule Vuechat.RoomChannel do
use Vuechat.Web, :channel
def join("room:lobby", payload, socket) do
{:ok, socket}
end
def join("room:" <> _private_room_id, _params, _socket) do
{:error, %{reason: "Unauthorized"}}
end
def handle_in("new_msg", %{"body" => body}, socket) do
broadcast! socket, "new_msg", %{body: body}
{:noreply, socket}
end
def handle_out("new_msg", payload, socket) do
push socket, "new_msg", payload
{:noreply, socket}
end
end
有人对此有解决方案吗?
【问题讨论】:
-
错误消息说您在 web/static/js/app 中期待 app.js,但您的似乎在 网页/静态/app.js。尝试将文件移动到 /js/ 文件夹。
标签: vue.js phoenix-framework elixir