标签: html5mode

.htaccess用于HTML5模式的AngularJS app的子文件夹

概述:

我有一个使用的AngularJS应用程序,$locationProvider.html5Mode(true)它是从Apache服务器提供的.到目前为止,我使用了从其他人访问的源代码,我只需要为angularJS的HTML5模式重定向到index.html.所以我.htaccess为我的/app文件夹的文件.

.htaccess:

<IfModule mod_rewrite.c>

    RewriteEngine on

    # Don't rewrite files or directories
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]

    # Rewrite everything else to index.html to allow html5 state links
    RewriteRule ^ index.html [L]

</IfModule>
Run Code Online (Sandbox Code Playgroud)

修改:

然后我添加了Grunt来缩小在/dist应用程序文件夹中生成的整个解决方案(所以现在缩小的解决方案位于/ app/dist).我现在想将我的应用程序的整个流量路由到缩小版本,而不会让用户更改链接.所以,在实践中我想将每个来自/ app的调用重定向到/ app/dist.

目录结构现在:

app
    dist
        minified versions(css,html,js)
Run Code Online (Sandbox Code Playgroud)

我尝试使用了一些条件,从这里在/ app的.htaccess和移动在/ app/DIST其他.htaccess文件,但没有成功.我甚至不知道这两者是否可以这样组合.我知道我可以使用dist文件夹作为/ app,但我不会真的想要这个,因为/ app是一个repo,它更容易保持更新.那么如何通过重定向来实现这一目标呢?

另外,作为第二件事,是否有可能以某种方式放置标志,所以我让alpha用户使用普通(未缩小)版本来进行更好的调试?

更新:

在这里添加了一个示例项目.我只保留了上面显示的初始.htaccess文件,您可以检查两个版本(/test/test/dist)是否如上所述.此外,它可能有一些未使用的代码和依赖项,但我只是从我的项目中删除其他部分(不要判断:D).

为此,我使用了AngularJS 1.4.8的初始配置,可能会产生一些错误,如此此处所述.随意将AngularJS版本更新为1.5.8(Angular …

apache .htaccess mod-rewrite angularjs html5mode

11
推荐指数
1
解决办法
4610
查看次数

将所有AWS S3 http请求重定向到index.html以获取AngularJS HTML5Mode

如何将所有请求重定向到我的静态AWS S3网站到index.html,以便我可以使用AngularJS的HTML5模式?

我最近(通过我无尽的喜悦)了解到#,使用HTML5模式可以在URL中使用AngularJS .但是,我从这个答案中知道,这需要在服务器上进行一些设置,因为所有请求都必须重定向到正确的html文件(在这种情况下index.html),以使其正常工作.

我使用AWS S3的静态网站托管我的网站.我尝试将此添加到我的重定向规则:

<RoutingRules>
     <RoutingRule>
         <Redirect>
             <ReplaceKeyWith>/</ReplaceKeyWith>
         </Redirect>
     </RoutingRule>
</RoutingRules>
Run Code Online (Sandbox Code Playgroud)

<RoutingRules>
     <RoutingRule>
         <Redirect>
             <ReplaceKeyWith>index.html</ReplaceKeyWith>
         </Redirect>
     </RoutingRule>
</RoutingRules>
Run Code Online (Sandbox Code Playgroud)

但是我遇到了太多重定向的问题.

有没有办法在AWS S3中使用静态网站托管进行必要的重定向?

amazon-s3 amazon-web-services angularjs html5mode

2
推荐指数
1
解决办法
1962
查看次数

当您在 angularjs 中启用 html5 模式时会发生什么?

启用 html5 模式时实际上会发生什么?这可能会回到单页应用程序中路由如何发生的问题

我之前的感知(可能是错误的):查看 angularjs 应用程序中的脏 url,我总是假设它是 url 片段,不同的视图绑定到不同的片段。简而言之,我们已经拥有所有页面,并且正在为特定 url 显示特定片段。

现在,为了删除哈希,您必须将 html5mode 设置为 true,并且必须告诉服务器为除 api 之外的每个请求返回索引页面。有点像

app.get('/ap1',some);
//more apis 
*
*
*
//in the end
app.get('*' ,(req,res,next) => req.sendFile('index.html'));
Run Code Online (Sandbox Code Playgroud)

每次 url 更改时,请求不应该发送到服务器并重新加载页面吗?

html5mode 对浏览器有什么作用?在像 React 和 Angular(2 或更大)这样的较新框架中,您甚至不必启用 html5mode(除了在 Angular 2 中,您必须告诉您想要哪种 url)。

这是什么巫术?

html javascript angularjs single-page-application html5mode

2
推荐指数
1
解决办法
894
查看次数