更改 Symfony public 目录以适应网站

Change Symfony public directory to fit website

我想在我的 public 目录中创建名为 'app' 的目录,并使其成为我的应用程序的根目录而不是 'public' 目录。除了添加我该怎么办:

"extra": {
    "public-dir": "public/app/",
...
}

我有一个应该放在 'app' 目录中的 vue 应用程序和一个将放在 'public' 目录中的 wordpress 实例,所以当我输入 www.mywebsite.com 我得到 wordpress 网站,当我输入 www.mywebsite.com/app 时,我得到了我的 symfony/vue 应用程序。 到目前为止,我用以下方式编辑了 webpack.config.js:

.setOutputPath("public/app/build/")
.setPublicPath("/build/")

它认为它在开发环境中有效,但在我点击 www.mywebsite 时在生产环境中有效。com/app 我得到:

 <script src="/build/app.js"></script>

错误地指向:www.mywebsite.com/build/app.js 而不是 www.mywebsite.com/app/build/app.js 但是每当我将 webpack.config.js 更改为:

.setOutputPath("public/app/build/")
.setPublicPath("/app/build/")

它适用于生产环境,但不适用于开发环境。 我在这里做错了什么?

根据您的问题描述,我假设您的应用程序在 dev 环境中的 / 处访问,但在 prod 环境中的 /app 处访问,如前所述。所以你必须在调用 .setConfigPath() 时考虑到这一点,方法是检查你在 webpack 配置中 运行 的环境:

.setPublicPath(Encore.isProduction() ? '/app/build' : '/build')