Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir 不同的终点。e、 Helloweb v Hello.Web_Elixir_Phoenix Framework - Fatal编程技术网

Elixir 不同的终点。e、 Helloweb v Hello.Web

Elixir 不同的终点。e、 Helloweb v Hello.Web,elixir,phoenix-framework,Elixir,Phoenix Framework,创建新的Phoenix 1.3项目时,我注意到config/prod.exs中的端点是Bia.Web.endpoint。当查看Phoenix Hex文档时,我看到它们引用了Helloweb.Endpoint。我假设后一种格式应该是默认格式,因为当我用mix phx.gen.html生成一个上下文时,我得到下面的编译错误,突出显示它找不到moduleBiaweb。我可以进入控制器并将Biaweb重命名为Bia.Web,然后它就解决了,但我只是遇到了一系列进一步的问题 == Compilation

创建新的Phoenix 1.3项目时,我注意到
config/prod.exs
中的端点是
Bia.Web.endpoint
。当查看Phoenix Hex文档时,我看到它们引用了
Helloweb.Endpoint
。我假设后一种格式应该是默认格式,因为当我用
mix phx.gen.html
生成一个上下文时,我得到下面的编译错误,突出显示它找不到module
Biaweb
。我可以进入控制器并将
Biaweb
重命名为
Bia.Web
,然后它就解决了,但我只是遇到了一系列进一步的问题

== Compilation error on file lib/bia_web/controllers/user_controller.ex ==
** (CompileError) lib/bia_web/controllers/user_controller.ex:2: module BiaWeb is not loaded and could not be found
    (elixir) expanding macro: Kernel.use/2
    lib/bia_web/controllers/user_controller.ex:2: BiaWeb.UserController (module)
    (elixir) lib/kernel/parallel_compiler.ex:117: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/1

这是怎么回事?正确的格式应该是什么

Phoenix在1.3最终版本之前有一段时间,它以
MyApp.Web
格式生成模块,而不是
MyAppWeb
。您的系统上必须安装
1.3-rc
版本的
phx.new
。通过运行以下命令升级后,它应生成正确的模块名称:

$ mix archive.install https://github.com/phoenixframework/archives/raw/master/phx_new.ez

您安装了哪个版本的
phx.new
?IIRC 1.3最终版本应生成
BiaWeb.Endpoint
。也许你安装了一些1.3-rc版本?我强烈怀疑我有1.3rc。我稍后回到那台机器时会检查。为了补充@dogbert所说的内容:1.)通过
mix phx.new--version
2.)检查您的phoenix版本。再次检查您的Elixir版本以及
Elixir--version
3。)发布您用于创建新phoenix项目的确切命令行。@dogbert-完全正确。我安装了1.3-rc。更新到v1.3,一切正常。你想转载作为答案吗?这篇文章在谷歌搜索
Phoenix-MyApp.Web vs-MyAppWeb
时相当高。即使在Chris自己的演示中,它也曾经是作为名称空间的Web,而不是后缀。如果有人找到了这个改变的理由的链接,那就太好了。我找不到它,但我肯定它埋在邮件列表或问题的某个地方。