微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将Create-React-App与Apache VirtualHost一起使用

如何解决将Create-React-App与Apache VirtualHost一起使用

我正在尝试为一家公司开发一个项目。该公司的API仅允许来自两个来源的请求:他们自己的主机和xyz.localhost

首先,我仅使用jQuery开发了该项目(通过CDN加载)。借助Apache VirtualHost设置,它可以正常工作-我可以访问API。

现在,我想重构项目并与它一起使用React。我用create-react-app创建了一个反应目录。

问题是:我可以让create-react-app使用xyz.localhost,但是在Chrome中我仍然收到CORS错误消息:

Access to fetch at 'http://api.thatcompany.com/search?search=a' 
from origin 'http://xyz.localhost:3000' has been blocked by CORS policy

有人对如何使它起作用有任何想法吗? 预先谢谢你。


/private/etc/apache2/httpd.conf:

# Virtual hosts
#Include /private/etc/apache2/extra/httpd-vhosts.conf
Include /private/etc/apache2/vhosts/*.conf

/ private / etc / hosts:

127.0.0.1       xyz.localhost
255.255.255.255 broadcasthost
::1             xyz.localhost

/private/etc/apache2/vhosts/xyz.localhost.conf:

<VirtualHost *:80>
        DocumentRoot "/Users/MYUSERNAME/dev_projects/MY-REACT-APP/public"
        ServerName xyz.localhost

        <Directory "/Users/MYUSERNAME/dev_projects/MY-REACT-APP/public">
                AllowOverride All
                Require all granted
        </Directory>

        <filesMatch "\.(html|htm|js|css)$">
                FileETag None
                <ifModule mod_headers.c>
                        Header unset ETag
                        Header set Cache-Control "max-age=0,no-cache,no-store,must-revalidate"
                        Header set Pragma "no-cache"
                        Header set Expires "Wed,11 Jan 1984 05:00:00 GMT"
                </ifModule>
        </filesMatch>
</VirtualHost>

我的create-react-app启动脚本:

"scripts": { "start": "HOST=xyz.localhost react-scripts start" }

解决方法

我找到了解决方法。

我只是将VirtualHost指向Create React App的build文件夹,这可以为我提供静态文件并为我提供服务。

编辑代码非常麻烦,因为每次更新后我都必须运行npm run Build

幸运的是,我找到了npm watch模块。这样,create react App将在每次保存时重建。在保存和刷新浏览器之间,我仍然需要等待一秒钟,这绝对不能与单独使用create react app相比,但这是一个很好的解决方案!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。