我在服务器上呈现了经典的web应用程序。我想在React中创建管理面板作为单页应用程序。我想从服务器管理面板https://smyapp.example.com/admin/.我尝试使用createreact app
,但它假设我从根URL提供SPA服务。我应该如何配置create react app
以从“admin”
子目录服务应用程序?在文档中,我找到了“homepage”
属性,但如果我正确理解它,则需要完整的url。我无法提供完整的url,因为我的应用程序部署在少数环境中。
您应该在包中添加条目。json
用于此。
在包中添加一个键“主页”:“您的子文件夹/”。json将从“您的子文件夹”加载所有静态文件
如果没有子文件夹,并且需要从同一文件夹加载,则需要将路径添加为“/”或删除包含“homepage”:“xxxxxxxxx”
“主页”:“/”
从官方文件
默认情况下,如果应用托管在服务器根目录下,CreateReact App会生成一个生成。要重写此选项,请在package.json中指定主页,例如:
“主页”:http://mywebsite.com/relativepath",
注意:如果您使用的是react router@^4
,则可以路由
从这里开始,并查看CRA官方文件
对于create-react-app v2和react-router v4,我使用以下组合为/app下的生产(分期,uat等)应用提供服务:
包裹json:
"homepage": "/app"
然后在应用程序入口点:
<BrowserRouter basename={process.env.PUBLIC_URL}>
{/* other components */}
</BrowserRouter>
在本地开发和部署环境中,一切都“正常工作”。HTH!
除了您的要求之外,我还要补充我的要求:
不久前,我还必须在Angular2项目中实现它,我发现在React中实现它比在Angular2中实现更困难,在Angular2中,您可以使用ng build--base href/
在构建之前,将PUBLIC\u URL
env变量设置为子目录的值,例如使用/subdir
。您还可以将此变量放入。环境。生产
(如果您没有该文件,您可以检查文档)
- 在
public/index中。html
添加下面的基本元素,这是用于静态文件(如图像)
<base href="%PUBLIC_URL%/">
<BrowserRouter basename={process.env.PUBLIC_URL} />
// history.tsx
import {createBrowserHistory} from 'history';
export default createBrowserHistory({ basename: process.env.PUBLIC_URL });
<!-- Where your router is, for me, App.tsx -->
<Router history={history}>
...
</Router>
<!-- "./assets/quotes.png" is also ok, but "/assets/quotes.png" is not -->
<img src="assets/quotes.png" alt="" />
/*remove that*/
background-image: url('/assets/background-form.jpg');
<section style={{backgroundImage: `url('assets/background-form.jpg')`}}>
...
你应该完蛋了。
我更喜欢使用
公共URL
而不是包中的
,因为我想使用gitlab上的env变量set来设置subdir。关于该主题的相关资源:主页
。json
https://create-react-app.dev/docs/deployment/#building-对于相对路径
PUBLIC\u URL
覆盖homepage
,PUBLIC\u URL
如果您提供域名,也会使用域名。如果仅设置主页
,公共URL
将设置为主页
的值。
如果不想在索引中使用基元素。html(我不知道为什么),您将需要附加
进程。环境。公开URL
到您自己的每个链接。请注意,如果您使用基本元素创建react router,但未设置basename
prop,则会收到警告。
Sass不会使用错误的相对路径进行编译。它也不会使用到
的正确相对路径进行编译/public/assets
文件夹,由于ModuleScopePlugin
限制,您可以通过在src文件夹中移动图像来避免限制,我还没有尝试过。
似乎没有办法在开发模式(npm start)中测试相对路径
最后,这些stackoverflow链接都有相关的问题:
我可以在react路由器中设置基本路由吗
- 使用环境变量设置base href
我正在尝试从application.yml的XML导入目标配置中配置我的回退。 当我在XML中设置静态目标时,一切都很好,但如果不是,我在启动时会出现这个异常: 我的依赖关系: Spring启动:“1.5.4.发布” net.logstash.logback:logstash-logback-encoder:4.9 logback-spring.xml applicaiton.yml 我试图避免将
问题内容: 我正在写一个Java库,实际上是一个Clojure库,但是对于这个问题,重要的是它在JVM上运行。该库需要执行一些JavaScript。我尝试过Nashorn,但遇到了一些局限性,可能难以克服。另外,我想尝试NodeJS。 我希望我的库是独立的,不依赖于独立运行NodeJS的系统,因此需要一种特殊的部署机制将Java和NodeJS工件放置在正确的位置,以便由两个不同的网络服务器接收。但
问题内容: 我需要找到Android应用程序中的瓶颈所在。 我可以使用哪些配置文件工具或技术? 问题答案: 您可以使用Traceview。它远非理想,但可行。 本文介绍了如何使用它。
应用程序服务是一项基于 HTTP 的服务,用于托管 Web 应用程序、REST API 和移动后端。 应用程序服务是一项基于 HTTP 的服务,用于托管 Web 应用程序、REST API 和移动后端。支持 ASP.NET、ASP.NET Core、Java、Ruby、Node.js、PHP 或 Python等主流编程语言,用户可以无需管理底层基础设置,即可简单、高效、安全和灵活地对应用进行部署、
我正在通过终端安装CreateReact应用程序。我已经检查了节点。js版本是4.5。0,高于此处的要求。npm的版本是2.15。9.然后我键入命令npm install-g create react app,出现这样的错误信息: 我想知道为什么我会犯这样的错误。有人能帮我解决这个问题吗?非常感谢你!
我在azure portal中为Cosmos帐户启用了多写功能。我不明白是否也必须使用SDK来设置ApplicationRegion?如果是强制的,这个属性的目的是什么?我看到了下面的文档,但我仍然不清楚。 文档
我正在尝试在ASP中配置自定义日志记录。NET核心MVC应用程序。该应用程序托管在Linux上的Azure应用程序服务上(免费层)。日志文件没有出现,我做错了什么? 我的配置: 以下ASP。NET Core日志记录文档(https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-3.1#azu
我已在单独的Weblogic域中成功配置了SAML 2.0身份提供程序 我们在另一个域的Weblogic中部署了一个ADF应用程序,该应用程序具有非SAML基于表单的身份验证(ReadOnlySQLAuthenticator用于验证凭据) 我想将第二个域配置为服务提供者(以使现有应用程序能够使用身份提供者登录)。 我做了以下工作: 配置SAML 2.0 Identity Asserter 在服务器