gpt4 book ai didi

javascript - 使用 apache 为 js 应用程序及其 api 提供服务

转载 作者:行者123 更新时间:2023-12-03 10:35:50 25 4
gpt4 key购买 nike

因此,在本地主机中工作时,我有以下文件夹结构

/htdocs
/multikanban # the js app
/multikanban-api # the php api

为了从 js 应用程序向 php api 发出请求,我基本上使用了相对路径。

现在我正在尝试将其部署到我的专用服务器上。我设法让这两个项目在 http://multikanban.com 下运行(应用程序)和 http://api.multikanban.com (API)。但是,从应用程序向 api 发出请求需要 CORS,因为使用子域被视为不是域的一部分。我不想使用 CORS,因为这个 api 只会被应用程序使用。这就是为什么我将 multikanban-api 文件夹移至 multikanban 文件夹并尝试使用相对路径。

到目前为止,我发现问题是由于我的 .htaccess 和 apache 配置造成的。

apache 配置看起来像

#
# multikanban.com (/etc/apache2/sites-available/multikanban)
#
<VirtualHost *:80>
ServerAdmin mezood@gmail.com
ServerName multikanban.com
ServerAlias www.multikanban.com

# Indexes + Directory Root.
# DirectoryIndex /app/index.html
DocumentRoot /var/www/multikanban/app/
</VirtualHost>

而应用程序的 .htaccess 看起来像

# html5 pushstate (history) support:

<ifModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !index
RewriteCond %{REQUEST_URI} !multikanban-api
RewriteRule (.*) app/index.html [L]
</ifModule>

这基本上是主干的 Pushstate 工作的配置,但我添加了 RewriteCond 来忽略 multikanban-api,这样 url 就不会被理解为应用程序的路由。

问题在于这个配置http://multikanban.com/multikanban-api将返回未找到。我知道这是因为 DocumentRoot 是/multikanban/app 而不仅仅是/multikanban 造成的。这就是为什么我试图定义

 DocumentRoot /var/www/multikanban/ 
DirectoryIndex /app/index.html

但这根本不起作用。访问 http://multikanban.com返回 require.js SyntaxError 并且甚至不加载应用程序。

关于如何解决此问题或如何在不使用 CORS 的情况下访问/multikanban-api 的方法,有什么想法吗?

最佳答案

我又想了想,也许你需要做一些像虚拟目录这样的事情? http://w3shaman.com/article/creating-virtual-directory-apache

<IfModule alias_module>
Alias /multikanban-api /htdocs/multikanban-api
</IfModule>

为什么要避免 CORS?

我不知道您的设置在什么方面不起作用,但请取出所有 JavaScript 应用程序,只在主站点上有一个 HTML 页面,并在 API 中内联完成简单的 JavaScript AJAX 调用。

另外使用 Postman 之类的工具来验证 API 是否按预期工作。

基本上不断简化你的堆栈,像 Require 这样的东西可能会妨碍你。让每个部分独立运行,您可能只是想太快地将它们整合在一起。

关于javascript - 使用 apache 为 js 应用程序及其 api 提供服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28993791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com