如何配置插件以将除 priv/static/ 之外的另一个目录设置为公共目录?

Posted

技术标签:

【中文标题】如何配置插件以将除 priv/static/ 之外的另一个目录设置为公共目录?【英文标题】:How do I configure plug to set another directory as public other than priv/static/? 【发布时间】:2015-08-19 04:41:25 【问题描述】:

我目前正在使用 aurelia 作为我的 phoenix 应用程序的前端框架。除了 priv/static 文件夹之外,我还想将项目根目录中的 jspm_packages 文件夹指定为静态目录。有没有办法配置插件来做到这一点?

【问题讨论】:

【参考方案1】:

简短的回答是:你不应该。

长答案是:在生产环境中,Elixir 应用程序关心两个目录:1. ebin(放置已编译代码的位置)和 2. priv(在生产环境中运行软件所需的辅助文件,如静态文件) )。如果您依赖的文件不在任何这些目录中,则在生产或构建版本中运行时可能会出现问题。所以我建议你将 aurelia 的东西移到 priv/static 中,或者有一个工具可以在一天结束时将 aurelia 工件编译到 priv/static。

如果您不想这样做,“我已经警告过您”的替代方法在这里:http://hexdocs.pm/plug/Plug.Static.html。在您的 Phoenix 端点lib/my_app/endpoint.ex 中配置Plug.Static 时,您可以设置from: "."。如果需要,您还可以插入多个 Plug.Static

【讨论】:

@Korbin 将 aurelia 根目录的符号链接设置为 priv/static - 会有帮助吗? 我想我会听从 Jose 的建议而不是改变它。我只是将 jspm 包指向 priv/static 文件夹内的目录。 对于像我这样想要添加另一个存储库到静态存储库的人来说,对我有用的是在我的 webpack 配置中使用 CopyWebpackPlugin 以确保它正常运行最后到priv/staticnew CopyWebpackPlugin([ from: 'path_to_repository', to: '..' ])

以上是关于如何配置插件以将除 priv/static/ 之外的另一个目录设置为公共目录?的主要内容,如果未能解决你的问题,请参考以下文章

如何配置 Devise for Ruby on Rails 以将电子邮件和密码存储在用户模型之外的其他位置?

将除一个元素之外的所有元素设置为暗色背景

在 SceneKit 中,是不是可以将除对象当前位置之外的导入动画作为原点?

htaccess 将除一页之外的所有页面从 html 重定向到 php

将除当前用户的用户名之外的所有用户名添加到数组

检测呈现视图之外的触摸以将其关闭