如何在Azure Linux上将子文件夹设置为Web应用根目录

fhity93d  于 2023-01-04  发布在  Linux
关注(0)|答案(1)|浏览(141)

我使用Linux on Azure来托管我的Web应用,它部署得很好。我的本地开发树结构如下所示:

  • 构建
  • 节点模块
  • 源文件。部署。环境。gitignore包。json自述文件。json ...

当我部署到Azure时,它看起来如下所示:

  • 距离
  • 节点模块

在我的一个文件中,我重用了节点模块中的一些组件,如下所示:

import Password from '../../../node_modules/path/to/components/forms/field-types/Password';

有两种可能的方法可以实现这一点:
1.将/dist部署到根目录中,并将node_modules作为兄弟节点,但这会使上面的相对路径中断,ES6不允许动态导入字符串,也不允许它们位于块中
1.将/dist文件夹设置为实际正确的应用程序根目录(例如:它包含server.js),则相对路径正确
我更喜欢#2,但是在Azure中进行虚拟路径Map的功能似乎不存在,所以我似乎需要利用.htaccess。我很好奇是否有任何其他方法可以做到这一点,而且如果根设置为/dist,相对路径是否仍然有效,或者它是否会被服务器阻止?
谢谢。

ff29svar

ff29svar1#

  • *. htaccess文件在请求路径上设置**RewriteEngine On**。因此,如果您在"subfolder"子文件夹中添加特定于管理员的. htaccess文件,这将抢占www**文件,从而避免此问题。

例如:
RedirectMatch ^/my_folder/(.+)/card.jpg$ /script_folder/image.php?perameter=$1
这会将**/my_folder/xyz/card. jpg重定向到/script_folder/image. php?perameter = xyz**将地址栏从输入的url更改为一个新的url.如果您希望浏览器停留在输入的url上,您可以使用以下基于mod重写的解决方案:

RewriteEngine on

RewriteRule ^my_folder/(.+)/card.jpg$ /script_folder/image.php?perameter=$1 [L]
请参考本文档:
Deploy files to App Service - Azure App Service | Microsoft Learn

相关问题